タグ付けされた質問 「system-calls」

4
dup2 / dup-ファイル記述子を複製する必要があるのはなぜですか?
私はの使用を理解しようとしているdup2とdup。 マニュアルページから: DESCRIPTION dup and dup2 create a copy of the file descriptor oldfd. After successful return of dup or dup2, the old and new descriptors may be used interchangeably. They share locks, file position pointers and flags; for example, if the file position is modified by using lseek on …

1
書き込みが連続して4Kバイトをバッファに残すのはなぜですか?
私は基本的に次のコードを持っています: int fileWrite(int file, void * pBuffer, size_t size) { size_t bytesWritten = (size_t)write( file, pBuffer, size ) ; if (bytesWritten != size) { return -1; } return 0; } サイズが1GBの場合は機能しますが、サイズが〜2GBの場合、一貫して4Kバイトが残ります。書き込みをループでラップしてバッファを上に移動することでこれを修正できますが、なぜそれが常に失敗するのか知りたいです。 たとえば、サイズが2147483648の場合、書き込みは2147479552のみを書き込み、4096は書き込みません。なぜこれが発生し、書き込みを常にループでラップすることが正しいのですか?
30 c  linux  system-calls 

1
Linuxでプロセスが新しいファイル記述子を開かないようにするが、ソケット経由でファイル記述子を受信できるようにする
私は現在、ソケットペアをセットアップしてフォークし、このソケットペアを使用して通信する親プロセスがあるプロジェクトに取り組んでいます。子は、ファイル(またはその他のファイル記述子ベースのリソース)を開きたい場合は常に親に移動し、リソースを要求しfdて、socketpair経由で送信されます。さらに、子供が自分でファイル記述子を開かないようにしたいと思います。 私はつまずきましsetrlimitたが、子が新しいファイル記述子を開くことができなくなりましたが、最初のソケット接続で送信されたファイル記述子が無効になるようです。単一のプロセスが任意のファイルを開き、そのファイル記述子を他のプロセスに送信し、これらの他のプロセスが自分でファイル記述子を開くことを許可せずにそれらを使用できるようにするLinuxのメソッドはありますか? 私のユースケースでは、フォーク後に適用でき、すべてのファイル記述子(ファイルだけでなく、ソケット、ソケットペアなど)にも適用できる限り、カーネル構成、システムコールなどを使用できます。
9 c  linux  system-calls 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.