2025年10月 に LightningBrains'合同会社 として法人化しました。
法人ページのURLは下記になります。
https://sites.google.com/lightning-brains.com/main/
Linuxシステムコール、セマフォの使い方
UNIX / Linux システムコール・プログラミング プロセス間通信(IPC)、セマフォ セマフォとは? セマフォ、聞き慣れない言葉ですが大昔の鉄道の信号機のことです。 単線区間で列車同士が衝突しないようにするため、信号機が使われました。 意味合い的には同様で、コンピューター内のある資源(メモリなど)に別々のプロセスが同時にアクセスしないようにするために利用します。 セマフォはSYSTEM V IPC です。 この、セマフォを利用することで複数のプロセスが同期して処理を進めることができます。 Linuxのセマフォは、セマフォ集合として生成して利用します。 このため、1つのセマフォ集合に複数のセマフォを含めることができ、Linuxのセマフォはカウンティングセマフォであるため、複数の許可を与えることも可能です。 ただし、この記事のサンプルコードは1つの集合に1つだけのセマフォ、許可数は1つだけとなっています。 まず、セマフォ生成のサンプルコードを示します。 seminit.c #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #include <stdio.h> #include <stdlib.h> union semun { int val; struct semid_ds *buf; unsigned short *array; }; int main() { key_t key; int semid; union semun arg; if ((key = ftok("sem.dat", 'S')) == -1) { perror("ftok"); exit(1); } /* create a semaphore set with 1 semaphore: */ if ((semid = semget(key, 1, 0666 | IPC_CREAT)) == -1) { p...
コメント
コメントを投稿