原创 进程间有名管道通信

2015-3-7 17:26 793 15 15 分类: MCU/ 嵌入式 文集: Linux应用程序开发学习
有名管道:又称为FIFO文件,因此我们对有名管道的操作可以采用操作文件的方法,如使用open,read,write等。
FIFO文件对比普通文件:
  1. 读取FIFO文件的进程只能以“RDONLY”方式打开FIFO文件
  2. 写FIFO文件的进程只能以“WRONLY”方式打开FIFO文件
  3. FIFO文件里面的内容被读取后,就消失了。但是普通文件里的内容还存在。
 
5.2 创建有名管道
 
5.2.1 函数名     mkfifo
5.2.2 函数原形     int mkfifo(const char *pathname, mode_t mode);
5.2.3 函数功能     创建有名管道
5.2.4 所属头文件    
5.2.5 返回值     成功:返回0  失败:返回-1
5.2.6 参数说明     pathname:要创建的fifo文件的名字(带路径)  
                  mode:创建的fifo文件的访问权限
 
 
5.3 删除有名管道
 
5.3.1 函数名     unlink
5.3.2 函数原形     int unlink(const char *pathname);
5.3.3 函数功能     关闭有名管道
5.3.4 所属头文件    
5.3.5 返回值     成功:返回0  失败:返回-1
5.3.6 参数说明     pathname:要关闭的fifo文件的名字(含路径)
 
小实验:
#include

#include 
#include
#include
#include
int main()
{
     int fd;
     mkfifo("/home/fifo", 777);
     fd = open("/home/fifo", O_WRONLY);
     write(fd, "Hello FIFO!", 12);
     printf("This is write process!\n");
     close(fd);
     return 0;
}


scksqfao23ifjbedthpqdkplg6_f9519653a75be2a19c4ec473ad3f85111425720326.0197.jpg?94632015-03-07%2017:25:26

文章评论0条评论)

登录后参与讨论
相关推荐阅读
潇洒哥 2015-07-08 16:01
位操作符的使用技巧
在C语言编程中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效...
潇洒哥 2015-04-04 17:39
finish shell分析之底层usart
rt_thread的finsh shell系统不愧是调试的一项利器,它可以除了完成一般shell的功能外,甚至还可以自定义命令。这个对功能单一的嵌入式系统来说是十分可贵的。在此我并不想对finsh...
潇洒哥 2015-04-01 21:29
__main() 和 main()
因为我们通常在BOOTLOADER中都已做好了比较细致的初始化工作,包括代码的搬运,所以我们最好别再调用库函数__main(),因为__main()作为ADS集成好的库函数,会对系统进行初始化设置...
潇洒哥 2015-03-26 22:54
RT-Thread学习之scons篇--解析rtconfig.py文件
rtconfig.py文件,主要用于指定编译器以及安装路径。除此之外,该文件中定义了大量的变量,这些变量包括编译选项,汇编选项,链接选项。   import os # toolchain...
潇洒哥 2015-03-26 22:53
RT-Thread学习之scons篇--SConsruct脚本文件解析
       scons的构建文件名称是统一的都称为SConstruct。其是scons所接受的编译脚本主文件。当然为了方便目录的组织,也允许在各个目录下面存放SConscript, 然后最上面S...
潇洒哥 2015-03-26 22:53
RT-Thread学习之scons篇--SConcript文件解析
SConscript文件是用来指定哪些文件会加入编译。先来分析下BSP主目录下的SConscript文件: import rtconfig Import('RTT_ROOT') fro...
我要评论
0
15
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /3 下一条