前提・実現したいこと
fork分を用いて3 つ以上のプロセスが並行に for 文の中の命令を実行するようにしたいです。
該当のソースコード
C言語
1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4#include <sys/types.h> 5#include <unistd.h> 6 7int main(void) 8{ 9 pid_t pid; 10 int i; 11 12 srand((unsigned int)time(NULL)); 13 14 printf("[BEFORE FORK]\n Process ID : %d\t Parent Process ID : %d\n", getpid(), getppid()); 15 16 pid = fork(); 17 if (pid < 0) { 18 perror("fork"); 19 exit(EXIT_FAILURE); 20 } 21 22 printf("[AFTER FORK]\n Process ID : %d\t Parent Process ID : %d\n", getpid(), getppid()); 23 printf("[id = %d] Return Value of Fork : %d\n", getpid(), pid); 24 printf("\n"); 25 26 sleep(1); // 1 秒停止 27 for (i = 0; i < 5; i++) { 28 printf("(%d) for loop i = %d\n", getpid(), i); 29 sleep(rand() % 3); 30 } 31 32 if (pid == 0) { 33 printf("(%d) End the child process\n", getpid()); 34 } 35 else { 36 printf("(%d) End the parent process\n", getpid()); 37 } 38 39 return 0; 40}
わかる方教えていただきたいです
あなたの回答
tips
プレビュー