实验
来源:互联网 发布:napa软件建模案例 编辑:程序博客网 时间:2024/04/29 03:14
#include<sys/types.h>
#include<sys/stat.h>
#include<errno.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#define MYFIFO "/tmp/myfifo" /* 有名管道文件名*/
#defineMAX_BUFFER_SIZE PIPE_BUF /*定义在于limits.h中*/
int main(intargc, char * argv[]) /*参数为即将写入的字符串*/
{
int fd;
char buff[MAX_BUFFER_SIZE];
int nwrite;
if(argc <= 1)
{
printf("Usage: ./fifo_writestring\n");
exit(1);
}
sscanf(argv[1], "%s", buff);
/* 以只写阻塞方式打开FIFO管道 */
fd = open(MYFIFO, O_WRONLY);
if (fd == -1)
{
printf("Open fifo fileerror\n");
exit(1);
}
/*向管道中写入字符串*/
if ((nwrite = write(fd, buff,MAX_BUFFER_SIZE)) > 0)
{
printf("Write '%s' toFIFO\n", buff);
}
close(fd);
exit(0);
}
(2)读管道的程序
#include<sys/types.h>
#include<sys/stat.h>
#include<errno.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<limits.h>
#define MYFIFO "/tmp/myfifo"
#defineMAX_BUFFER_SIZE PIPE_BUF /*定义在于limits.h中*/
int main()
{
char buff[MAX_BUFFER_SIZE];
int fd;
int nread;
/* 判断有名管道是否已存在,若尚未创建,则以相应的权限创建*/
if (access(MYFIFO, F_OK) == -1)
{
if ((mkfifo(MYFIFO, 0666) < 0)&& (errno != EEXIST))
{
printf("Cannot createfifo file\n");
exit(1);
}
}
/* 以只读阻塞方式打开有名管道 */
fd = open(MYFIFO, O_RDONLY);
if (fd == -1)
{
printf("Open fifo fileerror\n");
exit(1);
}
while (1)
{
memset(buff, 0, sizeof(buff));
if ((nread = read(fd, buff,MAX_BUFFER_SIZE)) > 0)
{
printf("Read '%s' fromFIFO\n", buff);
}
}
close(fd);
exit(0);
}
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验。。
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- 实验
- Universal-Image-Loader 使用
- 让 SpringMVC 接收多个对象的4种方法
- dsfgh
- 关于javaBean中boolean类型变量的set和get
- 命令行执行Qt程序
- 实验
- 程序猿
- 有关SVN安装与tomcat启动
- SQL中Group By的使用
- 解决:AndroidStudio导入第三方工程出现Error:Attribute application@icon value=(@mipmap/ic_launcher)
- win7下搭建node.js环境,并解决expressexpress不是内部或外部命令,也不是可运行的程序或批处理文件的问题
- UICollectionView UITableView registerNib和registerClass的回调
- 大端法和小端法a地方
- Linux上安装php的pear