#include #include #include #include #define MAXSTRS 5 int main() { int cntr; FILE *pipe_fp; char *strings[MAXSTRS] = { "echo", "bravo", "alpha", "charlie", "delta"}; int i; int fds[2]; pid_t pid; int data_processed; const char some_data[]="pewnego razu byl sobie jeden ....\n"; if(pipe(fds)==0) { pid=fork(); if(pid==(pid_t)0) { close(fds[1]); dup2(fds[0],0);//STDIN_FILENO execlp("sort","sort", 0); } else { FILE *stream; close(fds[0]); stream=fdopen(fds[1],"w"); for(i=0; i #define MAXSTRS 5 int main(void) { int cntr; FILE *pipe_fp; char *strings[MAXSTRS] = { "echo", "bravo", "alpha", "charlie", "delta"}; if (( pipe_fp = popen("sort", "w")) == NULL) { perror("popen"); exit(1); } for(cntr=0; cntr #include #include #include #include #include #define MAXSTRS 5 #define MAX 512 #define 10MEG (1024*1024*10) #define ROZMIAR_BUF PIPE_BUF int main(int argc, char *argv[]) { extern int errno; char path[20]; char komunikat[MAX]; int infkolejka; int open_mode=O_WRONLY; int pipe_fd; char bufor[ROZMIAR_BUF+1]; if(argc==2) strcpy(path,argv[1]); else strcpy(path,"/tmp/kolejka"); infkolejka=mkfifo(path,0777); if(infkolejka==-1) { printf("Utworzenie kolejki %s\n",path); } fprintf(stderr,"Bład mkfifo %s numer %d\n",path,errno); pipe_fd = open(path, open_mode); if(pipe_fd!=-1) { while(wyslane<10MEG) infkolejka = write(pipe_fd, bufor, ROZMIAR_BUF); if(infkolejka==-1) { } wyslane+=infkolejka } else{ exit(1); return 0; }