2
A
答えて
4
mkfifo()
を使用することは、標準化されており、移植性があります。一般的にmknod()
を使用すると移植性がありません。これはPOSIXの一部です(この回答の以前のバージョンとは逆の記述ですが)。 POSIX仕様では、mkfifo()
が望ましいとされています。それ以外の場合は、mkfifo()
とmknod()
で作成されたFIFOに違いはありません。
mknod()
は、FIFO以外のデバイスタイプを作成するために使用できます。これは、ブロック特殊文字特殊装置を作成することができます。かつて非常に(非常に)非常に長い時間前に、mkdir()
またはrmdir()
システムコールがある前の日に、mknod()
がディレクトリを作成するために使用されました。ディレクトリを作成した後、.
と..
のエントリを新しいディレクトリに作成するには、link()
を2回使用する必要がありました。 (そして、あなたはそれを使うためにroot特権を持っていなければならなかったので、mkdir
とrmdir
コマンドはSUID rootでした。)ファイルシステムはもはやゲームの一部ではないので、
参考: - :「mknodを `の唯一のポータブル使用が()` FIFOスペシャルファイルを作成することであるVersion 7 Unix 1979年頃
関連する問題
- 1. IE標準、相違点および相違点の相違点
- 2. importとconstとの相違点とcommonjsでの相違点
- 3. =と:=の相違点
- 4. PHPUnitとPHPSpecの相違点と相違点
- 5. CBUUIDとNSUUIDの相違点
- 6. NSTimeZoneとGMTの相違点
- 7. ListViewとArrayListの相違点
- 8. pictureBox.Update()とpictureBox.Refresh()の相違点
- 9. ApplicationContextInitializerとBeanFactoryPostProcessorの相違点
- 10. システムとshell_execの相違点
- 11. AsyncSocketとAsyncUdpSocketの相違点
- 12. .textと.get_text()の相違点
- 13. plt.close()とplt.clf()の相違点
- 14. `BeginSubscribeToStreamingNotifications`と` SubscribeToStreamingNotifications`の相違点
- 15. Delegate.InvokeとDelegateの相違点
- 16. InternalResourceViewResolverとUrlBasedViewResolverの相違点
- 17. tf.nn.convolutionとtf.nn.conv2dの相違点
- 18. Backbone.Layout.extendとBackbone.view.extendの相違点
- 19. JavaとMacOSの相違点
- 20. Yocto:CORE_IMAGE_EXTRA_INSTALLとIMAGE_INSTALLの相違点
- 21. window.someRandomVarとsomeRandomVarの相違点
- 22. CDRとxDRの相違点
- 23. gst_bus_add_watch()とg_signal_connect()の相違点
- 24. EventStreamとEventBusの相違点
- 25. System.Threading.Tasks.DataflowとMicrosoft.Tpls.Dataflowの相違点
- 26. java.homeとJAVA_HOMEの相違点
- 27. $ httpParamSerializerJQLikeと$ httpParamSerializerの相違点
- 28. doAfterTerminateとdoFinallyの相違点
- 29. Boost.CoroutineとBoost.Coroutine2の相違点
- 30. ModalControllerとNavControllerの相違点
オム、私の 'mknod'マンページでは、«POSIX.1-2001は言う言います。 'mode'が' S_IFIFO'でないか 'dev'が' 0'でない場合、 'mknod()'の動作は不明です。 "»ので、' m_mod 'と 'S_IFIFO' *は確かに標準です。これはhttp://pubs.opengroup.org/onlinepubs/9699919799/functions/mknod.htmlで確認されていますが、 "FIFO特殊ファイルを作成するために、この関数よりも' mkfifo() '関数が優先されます。" –
@MatteoItalia:ああ、ありがとう。 'mknod()'がPOSIXに入っているのは間違いありません。 'mkfifo()'(そして 'mkdir()'と 'rmdir()')の存在を考えると、関数は実際に余計です。私はそれが標準化されていることに驚いています。第3引数の初期化されていない値で関数がスペックに示されているのは興味深いです: 'dev_t dev; int status = mknod( "/ home/cnd/mod_done"、S_IFIFO | S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH、dev); ' - ' dev'は初期化されていません。この値を0に設定すると正常です。第七版マニュアルにそれを示唆する言葉がありました。 –