


Linux の CopyRead について: 重複したファイル記述子から読み取る機能
CopyRead は、別のプロセスから複製 (コピー) されたファイル記述子からプロセスが読み取ることを可能にする Linux の機能です。この機能は Linux バージョン 2.2 で導入され、オペレーティング システムの現在のバージョンでも引き続き利用できます。プロセスが「dup」システム コールを使用してファイル記述子を複製する場合、新しいファイル記述子は元のファイル記述子のコピーではありません。むしろ、同じ開いているファイルを参照する別のファイル記述子です。元のファイル記述子は開いたままになり、他のプロセスが同じファイルの読み取りまたは書き込みに使用できます。
CopyRead を使用すると、元のプロセスが既にファイルを閉じている場合でも、プロセスは別のプロセスから複製されたファイル記述子から読み取ることができます。ファイル記述子。これは、プロセスが別のプロセスによってまだ開かれているファイルから読み取る必要があるが、元のプロセスが実行されていないか、ファイルから読み取ることができない状況で役立ちます。たとえば、プロセス A がファイルを開くとします。次に、「dup」を使用してファイル記述子を複製します。プロセス B は、プロセス A が元のファイル記述子を閉じた後でも、複製されたファイル記述子から読み取ることができます。これにより、プロセス A がファイルの使用を終了した後でも、プロセス B がファイルからの読み取りを続行できるようになります。CopyRead は読み取りモードで開かれているファイルに対してのみ機能することに注意することが重要です。ファイルが書き込みモードで開かれている場合、複製されたファイル記述子はファイルから読み取ることができません。さらに、ファイルが読み取りモードと書き込みモードの両方で開かれている場合、複製されたファイル記述子は、ファイルが読み取りモードでも開かれている場合にのみファイルから読み取ることができます。



