1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| #include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
pid_t pidfils,pidfils2;
int fd, reach_chars, off_;
char buffer [11];
struct stat sb;
char buffer2 [500];
if (argc != 2) {
fprintf(stderr, "Usage: %s <pathname>\n", argv[0]);
exit(EXIT_FAILURE);
}
fd = open (argv[1],O_RDONLY);
if (fstat(fd, &sb) == -1) {
perror("fstat");
exit(EXIT_SUCCESS);
}
pidfils = fork();
if (pidfils >0){
pidfils2 = fork();
}
if (pidfils == 0){
fd = open (argv[1],O_RDONLY);
printf("----------fd: %d-------------\n",fd);
if (fstat(fd, &sb) == -1) {
perror("fstat");
exit(EXIT_SUCCESS);
}
while(read(fd,&buffer,11)>0) printf("pid fils 1: %d %s", getpid(),buffer);
}
if (pidfils2 == 0){
fd = open (argv[1],O_RDONLY);
printf("----------fd: %d-------------\n",fd);
if (fstat(fd, &sb) == -1) {
perror("fstat");
exit(EXIT_SUCCESS);
}
while(read(fd,&buffer,11)>0) printf("pid fils 2: %d %s", getpid(),buffer);
}
return 0;
} |
Partager