0
我正在使用管道(bash腳本)。我在一個管道$server
中寫入,並從另一個管道$serverPID
中讀取。這是客戶端的代碼示例:無法從FIFO獲取數據
echo "Get var"
mkfifo "${server}$$"
echo "$$ 2" > $server
read var < "${server}$$"
echo "var: ${var}"
這是服務器的示例代碼:
int fd;
if ((fd = open(fifo, O_RDWR)) == -1) {
fprintf(stderr, "Could not open fifo");
}
ssize_t written;
written = write(fd, buf, strlen(buf));
if (written == -1) {
fprintf(stderr, "Could not write into fifo");
}
printf("written %d into %s\n", written, fifo);
我看到所有數據成功地寫,但我得到沒有出現寫入的數據在客戶端等待。哪裏有問題?
我在客戶端添加'&'但沒有結果。如果我僅終止服務器,則獲得結果 –
您正在寫入客戶端中的文件,而不是fifo。你的意思是'echo「$$ 2」>「$ server $$」'? – chepner