gpt4 book ai didi

c - C 中的函数 open() 开始并且永不结束

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:51 25 4
gpt4 key购买 nike

int j = 1;

if((estado = open(SHELL, O_WRONLY))== -1){

if(errno == ENOENT){

mkfifo(SHELL,0666);
estado = open(SHELL, O_WRONLY);
}

else{
perror("Erro a abrir pipe de estado da shell : ");
exit(1);
}
}

write (estado, &j,1);
/************************************************/

出于某种原因,该程序从不在这些 open() 之一(不知道是哪个)之后进行计算,它只是停止并一直在那里做某事……我错过了什么吗?

编辑:我要感谢所有回答的人,在您的帮助下我能够更好地理解管道如何工作并解决我的问题。谢谢!

最佳答案

正如 sjnarv 所指出的(在我完成我的回答之前我没有评论它......),一个用于写入 FIFO 的 open() 调用将被阻塞,直到 FIFO打开供另一个线程或另一个进程读取。

关于c - C 中的函数 open() 开始并且永不结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com