ここから本文です

プログラムについての問題で分からない問題があるので解答とできれば解説付きで教...

アバター

ID非公開さん

2020/1/3121:00:03

プログラムについての問題で分からない問題があるので解答とできれば解説付きで教えていただけますでしょうか。

問題

以下に示す forktest.c と odd.c について,それぞれ以下に示す操作を実行した.このとき画面
に表示される文字列を予想して書きなさい.但しプロセス ID を考慮する必要がある場合には、
ある条件を満たす任意の値と仮定して良い.
test.c の中身:
1
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
int main()
{
pid_t pid;
int status;
pid = fork();
if ( pid < 0 )
{
fprintf (stderr, "fork error\n");
exit(1);
}
if (pid == 0)
{
execl("/usr/bin/odd", "odd", NULL);
exit(1);
}else{
waitpid(pid, &status, 0);
printf ("pid=%d finished!\n", pid);
exit(0);
}
return(0);
}
odd.c は
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) {
printf("%d ", 2*i);
}
printf("\n");
return 0;
}

forktest.c は
gcc -O odd.c -o odd
でコンパイルした後,スーパーユーザ権限で/usr/bin/の中に置いた.forktest.c は
gcc -O forktest.c -o forktest
でコンパイルした後,次のように実行した。
2
./forktest

よろしくお願い致します。

閲覧数:
41
回答数:
1

違反報告

ベストアンサーに選ばれた回答

amr********さん

2020/2/200:00:07

forkは習ったよね?
わからない部分はどこですか?

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる