Гость Опубликовано 2 декабря, 2001 Жалоба Поделиться Опубликовано 2 декабря, 2001 есть вот такой текст { printf("Hello"); if(fork()==0) printf("world"); exit(0); } На экран выводится Hello world Hello Откуда берется второй раз Hello? Когда пишу printf("Hello \n"); Работает как надо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 2 декабря, 2001 Жалоба Поделиться Опубликовано 2 декабря, 2001 //#include #include #include int main() { unsigned char stuff[] = " world"; printf("hello"); // signal(SIGCHLD, SIG_IGN); if (fork() == 0) { write(1, stuff, strlen(stuff)); _exit(0); } return (0); } a tak tol'ko odin hello:) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 3 декабря, 2001 Жалоба Поделиться Опубликовано 3 декабря, 2001 #include int main() { printf("Hello"); fflush(NULL); if (fork() == 0) printf(" world\n"); exit(0); } a tak? i vot eze odna detal', kak viyasnilos' printf derzit 4 baita v buffere. bolee togo, esli sdelat' printf("hello'); do fork, a potom v roditel'skom processe sdelat: for (i = getdtablesize(); i > 0; i--) close(i); to pervii printf voobsche ne poyavlyaetsya: on ne uspevaet vilezti iz buffera do zakritiya i = 1; ) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 4 декабря, 2001 Жалоба Поделиться Опубликовано 4 декабря, 2001 Спасибо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.