Я пытаюсь заставить свою программу читать по одной строке для каждого ребенка (каждая строка содержит один int). Каждый раз, когда я выполняю это чтение, он продолжает читать первую строку.
Вот основа моего кода.
void forkChildren (int nChildren) {
int i;
int size;
int sum = 0;
int tell = 0;
pid_t pid;
for (i = 0; i < nChildren; i++) {
pid = fork();
if (pid == -1) {
/* error handling here, if needed */
return;
}
if (pid == 0) {
char data[10];
FILE * file1;
file1 = fopen("numbers.dat", "r");
fseek(file1, tell, SEEK_SET);
fgets(data, 10, file1);
//fseek(file1, tell, SEEK_SET);
tell += strlen(data);
printf("%d ", tell);
sum = atoi(data);
printf("Sum is: %d \n", sum);
sleep (5);
return;
}
tell
, но это означает, что все они разделяют значение по умолчанию 0 от родителя. - person kfsone   schedule 09.12.2013