#include #include #include #include #include #include #define BUFSIZE 1024 #define CPC 5 #define NC 5 extern char **environ; int main (int argc, char **argv, char **envp) { int p=0, p1=0, f, n=5, c, i, j; char *b, *n1; c = NC; n1 = argv[1]; printf("%s[%d]: Poczatek procesu glownego...\n", *argv, getpid()); f = open (n1, O_RDONLY); for (i=0; i 0) { printf("%s[%d]: To dalej ja, proces glowny...\n", *argv, getpid()); } else if ( p == 0 ) { printf("%s[%d]: Jestem procesem potomnym, moj rodzic to: [%d]...\n", *argv, getpid(), getppid()); sleep(1); lseek(f, i*CPC, SEEK_SET); b = malloc(sizeof(char)*c+1); j = read (f, b, c); b[c+1]='\n'; printf("%s: Przeczytano %d znaków, poczynajac od: %d, z pliku %s: \"%s\"\n", argv[0], j, i*CPC, n1, b); free(b); exit(0); } } p1=wait(NULL); printf("%s[%d]: Jestem bezdzietny, ostatnie dziecko to: %d :(\n", *argv, getpid(), p1); close(f); printf("%s[%d]: Koniec procesu glownego.\n", *argv, getpid()); exit (0); return(0); }