Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <sys/wait.h>
- #include <fcntl.h>
- #include <dirent.h>
- #include <string.h> /* memset */
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #define BUFSIZE 1024
- #define CPC 10
- #define NC 10
- extern char **environ;
- int main(int argc, char **argv, char **envp) {
- int p = 0, p1 = 0, f, n = 5, c, i, j,xd;
- char *b, *n1;
- c = NC;
- n1 = "//home//stud//common//tekst1.txt";
- printf("%s[%d]: Poczatek procesu glownego...\n",
- *argv, getpid());
- printf("%s", "Podaj od ktrego bitu mam zaczac czytac:\n");
- scanf("%d", xd);
- f = open(n1, O_RDONLY);
- for (i = 0; i<n; i++) {
- p = fork();
- if (p == -1)
- printf("%s[%d]: BLAD! Nie moge stworzyc procesu!\n",
- *argv, getpid());
- else if (p == 0) {
- printf("%s: Jestem procesem potomnym [%d] , moj rodzic to: [%d]...\n",
- *argv, getpid(), getppid());
- sleep(1);
- lseek(f, 20, 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, 20, n1, b);
- free(b);
- exit(0);
- }
- }
- p1 = wait(NULL);
- close(f);
- printf("%s[%d]: Koniec procesu glownego.\n",
- *argv, getpid());
- exit(0);
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement