fcntl、lockf、これはファイルロックに使う方が良いですか?

fcntl、lockf、これはファイルロックに使う方が良いですか?

ファイルロックのfcntlとlockfの 長所と短所に関する情報を探しています。 例えば、移植性のために使用する方が良いでしょうか? 私は現在、Linuxデーモンをコーディングしており、相互排除を強制するのに適しているのか疑問に思っています。…


c read関数呼び出しでタイムアウトを実装する方法は?

私は通信のためのシリアルCOMポートを使用したいと私はタイムアウトを私は読み取り関数の呼び出しを呼び出すごとに実装したい。 int filedesc=open( "dev/ttyS0", O_RDWR); read( filedesc, buff, len); 編集: 私はLinux OSを使用しています。 select関数呼び出しを使って実装する方法は?…


io open(2)のO_SYNCフラグとO_DIRECTフラグはどのように異なっていますか?

O_SYNCフラグとO_DIRECTフラグの使用と効果は非常に混乱しており、プラットフォームによって若干異なるようです。 Linuxのmanページ( hereの例をhere)から、O_DIRECTは同期I/Oを提供し、キャッシュ効果を最小限に抑え、ブロックサイズの調整を自分で処理する必要があります。 O_SYNCは同期I/Oを保証します。 どちらも、データがハードディスクのキャッ…


FD_CLOEXEC fcntl()フラグは何をしますか?

そのようです: if(fcntl(fd, F_SETFD, FD_CLOEXEC)==-1){... 私はman fcntlを読んman fcntl 、私はそれが何かを把握することはできません。…


LinuxノンブロッキングFIFO(オンデマンドログ)

私は、オンデマンドでプログラムの出力を記録するのが好きです。 例えば。 出力は端末に記録されますが、別のプロセスはいつでも現在の出力をフックできます。 古典的な方法は: myprogram 2>&1 | tee/tmp/mylog オンデマンド tail/tmp/mylog しかし、これにより、ドライブの空き領域がなくなるまで使用されなくても、ログファイルが増えることになります。 だ…


Linuxシステムコールフローシーケンス

私はLinuxの深い働きかけに関して質問をしました。 マルチスレッドプロセスがCPUで実行されているとします。 このような場合、CPU上でスレッドが実行されます。 より広範な画像では、プロセスに属する対応するページをRAMにロードして実行します。 スレッドがシステムコールを行うとします。 私はこの後の作業について少し不明です。 割り込みはコールを生成します。 私の質問の1つは、この電話に誰が…


ノンブロッキングのsend()が部分的なデータしか転送しない場合、次の呼び出しでEWOULDBLOCKが返されると想定できますか?

ノンブロッキングソケットのマニュアルページには、2つのケースが詳しく説明されています。 send()が転送バッファと同じ長さを返すと、転送全体が正常に終了し、ソケットは> 0バイトを超える次の呼び出しでEAGAIN/EWOULDBLOCKを返す状態になっているかどうかはわかりません。 send()が-1を返し、errnoがEAGAIN/EWOULDBLOCKである場合、転送はどれ…


sockets ソケット上のデータを再読み込みする

私はシンプルなサーバー/クライアントのUDPソケットプログラムを作成しており、問題が発生しました。 問題は、recvfrom()関数が最後に送信されたデータを再読み込みすることです。 したがって、クライアントからサーバに2つのパケットを送信すると、recvfrom()は最初のパケットを読み込み、そのデータを出力します。その後、2番目のパケットは何度も何度も何度も読み込まれます。 私が理解し…


c 記述子を読み込むノンブロッキング呼び出し

私はread(fd, buffer,...)呼び出すread(fd, buffer,...)によって読み込みに使用できるfd記述子を持っていread(fd, buffer,...) 。 今、コールがブロックされているので、実際にコールを行う前に何かがあるかどうか確認したいと思います。 これはどうすればいいですか?…





c言語 使い方 socket read ノンブロッキング タイムアウト コマンド python open linux