在c语言重使用mkfifo创建有名管道并关闭
时间: 2024-05-10 15:17:48 浏览: 117
在 C 语言中,使用 `mkfifo` 函数可以创建一个有名管道。创建成功后,需要使用 `open` 函数打开管道,使用 `write` 函数写入数据或使用 `read` 函数读取数据。最后,使用 `close` 函数关闭管道。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
int main()
{
char *fifo = "/tmp/myfifo";
int fd;
mkfifo(fifo, 0666);
printf("FIFO created\n");
fd = open(fifo, O_WRONLY);
write(fd, "Hello, world!", 14);
close(fd);
printf("FIFO closed\n");
return 0;
}
```
在上面的代码中,首先使用 `mkfifo` 函数创建一个名为 `/tmp/myfifo` 的有名管道,并设置权限为 `0666`。然后,使用 `open` 函数打开管道,并使用 `write` 函数向管道中写入数据。最后,使用 `close` 函数关闭管道。
注意,在读写有名管道时,必须保证读写的进程都已经打开了管道。如果读写进程有任意一个进程没有打开管道,那么读写进程将会阻塞等待。
阅读全文