c++ - c中的非阻塞输入

标签 c++ c fork

我想实现一个功能,使循环不断迭代并同时获取用户的输入(如果可用)。 我已经实现了以下代码,但是扫描变量“a”的值在打印时没有得到反射(reflect)。

pid_t pid;
pid=fork();
if(pid == 0 )
{
    while(1)
    {
        printf("%d\n",a);
        sleep(1);
    }
}
else
{
    while(1)
    {
        scanf("%d",&a);
    }
}

最佳答案

这是因为您有两个使用 fork() 的独立进程。如果您想遵循这种方法,您将需要使用线程。

关于c++ - c中的非阻塞输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083659/

相关文章:

c++ - 不断收到 unordered_map 编译器错误

c - 当我创建一个简单的进程树时出现奇怪的输出

c - 如何确保模数为正值

c - 在这种特殊情况下如何处理管道

java - 卡在递归 Fork/Join 上

c++ - 运行 .exe 文件时出现 std::logic 错误

c++ - 如何使用 OpenCV 从表中检测行和列

c - parent 应该收到有关孙子工作完成的信息

c++ - 水平线的类型是什么?

mysql - 错误 : token "@" is not valid in preprocessor expressions