2fifo有名管道
1fifo有名管道
創(chuàng)建一個(gè)有名管道,fifo
2.fifo依賴的頭文件
#include <sys/types.h>
#include <sys/stat.h>
函數(shù)聲明
int mkfifo(const char *pathname, mode_tmode);
3.fifo的寫端應(yīng)用
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>
?
void sys_err(char *str, int exitno)
{
???perror(str);
???exit(exitno);
}
?
int main(int argc, char *argv[])
{
???int fd;
???char buf[1024] = "hello toto\n";
???if (argc < 2) {
???????printf("./a.out fifoname\n");
???????exit(1);
??? }
?
???//fd = open(argv[1], O_RDONLY);
???fd = open(argv[1], O_WRONLY);
???if (fd < 0)
???????sys_err("open", 1);
?
???write(fd, buf, strlen(buf));
???close(fd);
?
???return 0;
}
fifo的讀端應(yīng)用
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string.h>
void sys_err(char *str, int exitno)
{
???perror(str);
???exit(exitno);
}
?
int main(int argc, char *argv[])
{
???int fd, len;
???char buf[1024];
???if (argc < 2) {
???????printf("./a.out fifoname\n");
???????exit(1);
??? }
?
???fd = open(argv[1], O_RDONLY);
???if (fd < 0)
???????sys_err("open", 1);
?
??? len = read(fd, buf, sizeof(buf));
???write(STDOUT_FILENO, buf, len);
?
???close(fd);
?
???return 0;
}
注意,這里要有可供寫的fifo文件,并且在運(yùn)行的時(shí)候傳入file文件。
?
?
?
?
?
?
?
總結(jié)
- 上一篇: 1pipe管道
- 下一篇: 银行卡超过限额怎么办