草庐IT

android - 如何在 Android 中创建命名管道 (mkfifo)?

我在Android中创建命名管道时遇到问题,下面的示例说明了我的困境:res=mkfifo("/sdcard/fifo9000",S_IRWXO);if(res!=0){LOG("Errorwhilecreatingapipe(return:%d,errno:%d)",res,errno);}代码总是打印:Errorwhilecreatingapipe(return:-1,errno:1)我无法弄清楚为什么会失败。该应用程序具有android.permission.WRITE_EXTERNAL_STORAGE权限。我可以在同一位置创建具有完全相同名称的普通文件,但管道创建失败。有问题的

c - mkfifo() 和 mknod() 的区别

创建命名管道时mkfifo()和mknod()有什么区别?我尝试搜索但没有得到满意的答案。 最佳答案 使用mkfifo()是标准化和便携的。使用mknod()一般来说,它是不可移植的——它是POSIX的一部分(尽管在这个答案的早期版本中有相反的说法)。POSIX规范说mkfifo()应该是首选。否则,mkfifo()和mknod()创建的FIFO之间没有区别。请注意,mknod()可用于创建其他设备类型,而不仅仅是FIFO。它可以创建block特殊设备和字符特殊设备。曾几何时(非常,非常)很久以前,mknod()也被用于创建目录—在