⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实例9-6.c

📁 Linux下C语言编程例子
💻 C
字号:
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#define FIFO_SERVER "/tmp/fifoserver"
main(int argc,char** argv)
{
	int fd;
	char w_buf[4096*2];
	int real_wnum;
	memset(w_buf,0,4096*2);
	if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL)<0)&&(errno!=EEXIST))
		printf("cannot create fifoserver\n");
	if(fd==-1)
		if(errno==ENXIO)
			printf("open error; no reading process\n");
		
     	fd=open(FIFO_SERVER,O_WRONLY|O_NONBLOCK,0);
	/*设置非阻塞标志
	fd=open(FIFO_SERVER,O_WRONLY,0);
	设置阻塞标志*/
	real_wnum=write(fd,w_buf,2048);
	if(real_wnum==-1)
	{
		if(errno==EAGAIN)
			printf("write to fifo error; try later\n");
	}
	else 
		printf("real write num is %d\n",real_wnum);
	real_wnum=write(fd,w_buf,5000);
	/*5000用于测试写入字节大于4096时的非原子性
	real_wnum=write(fd,w_buf,4096);
	4096用于测试写入字节不大于4096时的原子性*/
		if(real_wnum==-1)
		if(errno==EAGAIN)
			printf("try later\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -