Skip to content

Instantly share code, notes, and snippets.

@jciechowski
Created January 9, 2016 17:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jciechowski/a5d426a073a5f001dca3 to your computer and use it in GitHub Desktop.
Save jciechowski/a5d426a073a5f001dca3 to your computer and use it in GitHub Desktop.
piec
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
int descr[2]; //tablica deskryptorow
int main()
{
if (pipe(descr) < 0)perror("Blad tworzenia kolejki!");
if(fork() == 0)
{
close(descr[0]); //zamykam deskryptor odczytu (program zapisujacy do potomka)*/
dup2(descr[1],1); //zamieniam deskryptor stdout na descr[1] (wskazuje)
system("cat /etc/passwd"); //wykonuje polecenie cat -> do descr[1], posluguje sie kolejka komunikacyjna
close(descr[1]); //zamykam deskryptor zapisu (przerywam dzialanie procesu potomnego, przerywam czytanie)
}
else
{
close(descr[1]); //zamykam deskryptor zapisu (dzialam w procesie odczytu)
dup2(descr[0],0); //wskazuje stdin -> na descr[0]
system("sort"); //wykonuje polecenie sort (dane pobieram z descr[0], czyli z procesu macierzystego
close(descr[0]); //zamykam kolejke komunikacyjna
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment