工事現場備忘録

私の備忘録を私がどう書こうが私の自由であるとの信念に基づき自由に書いています

Cでマルチプロセスしたい

いんくるーど

#include <sys/types.h>

#include <unitstd.h>

#include <sys.wait.h>

waitは無くてもいいけどあると便利

プロセス生成

int pid;

pid = fork();

if (pid!=0){

~親プロセスの処理~

}else if(pid==0){

~子プロセスの処理~

}else{

~エラー処理~

}

プロセス間でデータを送りたい

パイプが一番楽? 

子→親で送るならたぶんこう

int pid;

pid = fork();

int pipes[2];

int buf[1];

int data;




if(pipe(pipes)==-1){

~エラー処理~

}




if (pid!=0){

~親プロセスの処理~

read(pipes[0], buf, sizeof(int));

}else if(pid==0){

~子プロセスの処理~

write(pipes[1], data, sizeof(data))

}else{

~エラー処理~

}

親→子もするならそれ用にパイプ追加で作っておく.プロセスをたくさん作るならパイプもたくさん作ってたくさんread/writeすればいい.同じパイプを共有するとぶつかったりして面倒.
マルチスレッド?メモリ管理面倒くさすぎて嫌じゃぁ