お世話になります。
[Prog1.c]、[Prog2.c]の2つのプログラムから同じSRAM領域にread/writeを
するプログラムを考えています。
プログラム言語はC言語、OSはLinuxです。
・[Prog1]
一定周期でSRAM領域を読み込むプログラム。
SRAM領域のデータに変化があったときにある処理を実行する。
/*********************************************************/
int desc = 0;
char old_ch[256];
char new_ch[256];
for(;;) {
desc = fopen("/dev/rasram", O_RONLY);
read(desc, &new_ch[0], 256);
if(strcmp(old_ch, new_ch)) {
//処理を実行・・・
strcpy(old_ch, new_ch);//古いデータを更新
}
close(desc);
sleep(5);
}
/*********************************************************/
・[Prog2]
任意のタイミングでSRAM領域にデータを書き込むプログラム。
/*********************************************************/
int desc = 0;
char write_ch[256];
desc = fopen("/dev/rasram", O_WONLY);
write(desc, &write_ch[0], 256);
close(desc);
/*********************************************************/
この時心配なのが、Prog1のreadとProg2writeが同時に発生した場合、プログラムエラー
にならないかということです。
openの状態がわかればいいのですが、別プロセスなのでdescの値も別になるでしょうし。
今までこのようなプログラムを作成したことのある方はいますでしょうか?
No.2
- 回答日時:
>>この時心配なのが、Prog1のreadとProg2writeが同時に発生した場合、プログラムエラー
にならないかということです。
定石として、そういう場合、排他制御の仕組みをプログラムに組み込みます。
ご回答ありがとうございます。
排他制御で調べてみたのですが、flockを使用すればよいのかな?と思いました。
もう少し調べてみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
あるプログラムのコマンドライ...
-
パックマンプログラム
-
VBAにてメール作成した際、一部...
-
Excelに埋め込んだVBAのプログ...
-
VBAでユーザーフォームが自動的...
-
プログラムの例外処理について
-
Excelで4096点以上のFFTの方法
-
読み込み中にアクセス違反が発...
-
UWSCで指定のフォルダを開きたい。
-
VBでのPublic変数につ...
-
VBAが止まります。
-
特定のwebサイトのタイトルや記...
-
RSAのCプログラム
-
ドロップダウンリストの文字を...
-
「Outlookが他のプログラムによ...
-
プログラムのループの周期を設...
-
寿命
-
VBで環境変数をSETする方法
-
3つの整数を読み込み昇順に並べ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
「Outlookが他のプログラムによ...
-
Excelに埋め込んだVBAのプログ...
-
VBAにてメール作成した際、一部...
-
Notepad++の関数リスト表示でC...
-
自動クエリとはどういうもので...
-
読み込み中にアクセス違反が発...
-
PICマイコンのコピー(クローン...
-
XnViewにwebpを「いつも開く」...
-
未使用の変数を一括検索する方法
-
VBAでユーザーフォームが自動的...
-
UWSCで指定のフォルダを開きたい。
-
パックマンプログラム
-
このプログラミング誰か教えて...
-
モジュール、アプリケーション...
-
Vba UserFormを前面に出す方法...
-
特定のwebサイトのタイトルや記...
-
ドロップダウンリストの文字を...
-
テキストボックスのエンターキ...
おすすめ情報