[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/22 09:08 / Filesize : 317 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 109代目



101 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 05:43:56 ]
>>21
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int main(void) { pid_t c[2], p; int s;
switch (c[0] = fork()) { case -1: perror("fork"); break;
case 0: execlp("./fork1", "fork1", NULL); perror("fork1"); _exit(1); /* NOTREACHED */
default: break; }
switch (c[1] = fork()) { case -1: perror("fork"); break;
case 0: execlp("./fork2", "fork2", NULL); perror("fork2"); _exit(1); /* NOTREACHED */
default: break; }
while (c[0] != -1 || c[1] != -1) { int i;
if ((p=wait(&s)) == -1) { perror("wait"); break; }
else for (i = 0; i < 2; i++) if (p==c[i]) {
if (WIFEXITED(s)) printf("fork%c exit(%d)\n", i+1, WEXITSTATUS(s));
else if(WIFSIGNALED(s)) printf("fork%c killed(%d)\n", i+1, WTERMSIG(s));
c[i]=-1;break; }
if (i==2) {fprintf(stderr, "?\n"); break;}}
return 0; }







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef