1. 调用umask系统调用来设定创建文件的权限,
#include 《sys/types.h》
#include 《sys/stat/侍此h》
mode_t umask(mode_t mask)
2. 调用unlink系统调用先删除已经存在的fifo,
#include 《unistd.h》
int unlink(const char *pathname)
3. 调用mkfifo库函数去创建一个FIFO文件,
#include 《sys/types.h》纳念
#include 《sys/stat.h》
int mkfifo(const char *pathname, mode_t mode)
或者可以通过调用mknod系统调用洞谈困并且指定参数mode为S_IFIFO也可以创建一个FIFO文件,
#include 《sys/types.h》
#include 《sys/stat.h》
#include 《fcntl.h》
#include 《unistd.h》
int mknod(const char *pathname, mode_t mode, dev_t dev)
Linux中所有内容都是以文粗枝件的形式保存和管理的,即一切皆文件,普通文件是文件,目录是文件,硬件设备是文件,套接字、网络通信等资源也都是文件。Linux系统中,文件具体可以空凳握分为以下几种类型:
1、普通文件
类似mp4、pdf、html这样,可直接拿来使用的文件都属于普通文件,Linux用户根据访问权限的不同可以对这些文件进行查看、删除以及更改 *** 作。
2、目录文件
Linux系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件,只要你有权限,可以随意访问目录中的任何文件。
注意,目录文件的访问权限,同普通文件的执行权限,是一个意思。
3、字符设备文件和块设备文件
这些文件隐藏在/dev/目录下,当进行设备读取或外设交互时才会被使用。
例如,磁盘光驱属于块设备文件,串口设备则属于字符设备文件。
Linux系统中的所有设备,要么是块设备文件,要么是字符设备文件。
4、套接字文件
套接字文件一般隐藏在/var/run/目录下,用于进程间的网络通信。
5、符号链接文件
类似于Windows中的快捷方式,是指向另一文件的简介指针。
6、管道文件
主要斗庆用于进程间通信。例如,使用mkfifo命令创建一个FIFO文件,与此同时,启用进程A从FIFO文件读数据,启用进程B从FIFO文件中写数据,随写随读。
FIFO和pipe的区别在于:FIFO在文件系统中有对应的inode,可以通过ls命令查看。
sh-3.2# ls -lhF 。/fifo_file
100 prwxrwxrwx 1 root root 0 Jan 1 1970 。/fifo_file|
sh-3.2#
正因为它有一个名字,所以任兆缺何进程都可以访问它,所以FIFO可用于任意两个进程之间的通信。
pipe没有名字,在现有文件系统中无法查看到它的存在。
它只能用于父子进程、兄弟进程等具有血缘关系的进程间通信。
创建FIFO的方法如下:
1. 调用umask系统悄乱调用来设定创建文件的权限,
#include 《sys/types.h》
#include 《sys/stat/h》
mode_t umask(mode_t mask)族运辩
2. 调用unlink系统调用先删除已经存在的fifo,
#include 《unistd.h》
int unlink(const char *pathname)
3. 调用mkfifo库函数去创建一个FIFO文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)