医療系の仕事をしています。生命の尊さ、美しさがどのようなメカニズムで生じるのかに興味があります。科学の方法論を用いて、このような問いに応えたい、私はこう思って医学生物学の基礎研究のトレーニングを受けてきました。生命を科学的手法を用いて理解を試みる上で、genomeを始めとした種々の大量データの処理が必要不可欠であることを痛感しました。また、生命科学が物理学、数学、統計学、有機化学などの種々の学問と深い関わりを持つことを実感しました。そのため、このブログは広範囲の学問領域に関しての記事を載せています。日々の学習内容を文書に書き残し、それを読み返すことによって、体系化された知識を身に付けることを目標としています。どうぞよろしくお願いします。
forkを用いた簡単なプログラム
プロセスを複製するためのシステムコールであるforkを用いた簡単なプログムを作りました。
大事な構文は、
if(fork() == 0){
/*child process */
} else {
/* parent process */
}
というように、if文を用いて親と子の各々の処理を記述することがあげられます。
// fork_test.c
#include<stdio.h> /* printf */
#include<stdlib.h> /* exit */
#include<sys/types.h> /* fork */
int main(void)
{
pid_t pid;
pid = fork();
//エラー処理
if(pid < 0 ){
fprintf(stderr, "fork(2) failed\n");
exit(1);
}
if(pid==0){
//子プロセスのためのコード
printf("Hello, world from child process.\n");
exit(0);
}
else{
//親プロセスのためのコード
printf("Hello, world from parent process.\n");
exit(0);
}
}