草庐IT

c++ - 线程和 fork()。我该如何处理?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:forkinmulti-threadedprogram如果我有一个应用程序使用fork()并且可能被开发为多线程,安全地编写此类应用程序需要考虑哪些经验法则/准则?

c++ - 线程和 fork()。我该如何处理?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:forkinmulti-threadedprogram如果我有一个应用程序使用fork()并且可能被开发为多线程,安全地编写此类应用程序需要考虑哪些经验法则/准则?

c - 在 C 中设置进程的内存限制(使用 fork 和 exec)

我想运行一个设置了内存限制的进程(最好是数据段、堆栈和堆)我的代码看起来像child=fork();if(child==0){...execv(program,args);}wait(&status);这个结构应该是保护者,我用它做了一些事情(重定向标准输入/输出,测量执行时间等)我的问题:如何为程序进程设置内存限制并在超过限制时通知父进程?进程不应该被sigsegv杀死,我想知道,进程被杀死只是因为这个内存限制。或者更好的是,有没有办法在完成时获取此进程的内存使用情况?该过程完成后,我可以比较最大使用内存。我不能使用valgrind(或类似的东西),因为我不能减慢执行时间。

c - 在 C 中设置进程的内存限制(使用 fork 和 exec)

我想运行一个设置了内存限制的进程(最好是数据段、堆栈和堆)我的代码看起来像child=fork();if(child==0){...execv(program,args);}wait(&status);这个结构应该是保护者,我用它做了一些事情(重定向标准输入/输出,测量执行时间等)我的问题:如何为程序进程设置内存限制并在超过限制时通知父进程?进程不应该被sigsegv杀死,我想知道,进程被杀死只是因为这个内存限制。或者更好的是,有没有办法在完成时获取此进程的内存使用情况?该过程完成后,我可以比较最大使用内存。我不能使用valgrind(或类似的东西),因为我不能减慢执行时间。

c - 如何使用单独的进程但不 fork 地读取/写入 Linux 伪终端?

我想编写一个程序来模拟串行端口上的设备。我正在尝试使用伪终端来完成此操作。我想要一个独特的过程来控制主人。此过程充当串行设备仿真器。我希望另一个进程(例如kermit)能够使用从终端与主进程通信。由于不同的工艺要求,我没有使用任何fork。互联网上几乎每个伪终端示例都显示了fork()用于主/从。我让它朝一个方向工作。也就是说,我可以让从进程将数据写入从伪终端,而主进程将从主伪终端读取它就好了。问题在另一个方向。无法让master写数据,slave读数据。我将展示无效的双向代码和有效的单向代码。非工作双向主机:#include#include#include#includeintmai

c - 如何使用单独的进程但不 fork 地读取/写入 Linux 伪终端?

我想编写一个程序来模拟串行端口上的设备。我正在尝试使用伪终端来完成此操作。我想要一个独特的过程来控制主人。此过程充当串行设备仿真器。我希望另一个进程(例如kermit)能够使用从终端与主进程通信。由于不同的工艺要求,我没有使用任何fork。互联网上几乎每个伪终端示例都显示了fork()用于主/从。我让它朝一个方向工作。也就是说,我可以让从进程将数据写入从伪终端,而主进程将从主伪终端读取它就好了。问题在另一个方向。无法让master写数据,slave读数据。我将展示无效的双向代码和有效的单向代码。非工作双向主机:#include#include#include#includeintmai

c - 进程组中的进程是否应该在 Unix/Linux 中与其父进程一起终止?

我遇到一个父进程可能产生多个子进程的情况。我想要实现的是,如果父进程被终止或退出,那么它的所有子进程都应该与父进程一起终止。在帖子(下面的链接)中,我发现了通过让父进程成为组长来存档它的建议。如果我没理解错的话,这也是流程组的主要目的。我说得对吗?帖子还提到prctl(PR_SET_PDEATHSIG,SIGHUP);和其他一些方法,但它们是以太操作系统特定的,否则就不会那么优雅。我已经编写了一个小演示来尝试更好地理解事情,但它并没有按我预期的方式工作。我做错了什么?//https://www.andrew.cmu.edu/course/15-310/applications/home

c - 进程组中的进程是否应该在 Unix/Linux 中与其父进程一起终止?

我遇到一个父进程可能产生多个子进程的情况。我想要实现的是,如果父进程被终止或退出,那么它的所有子进程都应该与父进程一起终止。在帖子(下面的链接)中,我发现了通过让父进程成为组长来存档它的建议。如果我没理解错的话,这也是流程组的主要目的。我说得对吗?帖子还提到prctl(PR_SET_PDEATHSIG,SIGHUP);和其他一些方法,但它们是以太操作系统特定的,否则就不会那么优雅。我已经编写了一个小演示来尝试更好地理解事情,但它并没有按我预期的方式工作。我做错了什么?//https://www.andrew.cmu.edu/course/15-310/applications/home

linux - 在 Linux 上哪些情况可能导致 fork() 或 system() 调用失败?

如何才能查明它们中的任何一个是否正在发生,并导致fork()或system()返回错误?换句话说,如果fork()或system()返回错误,我可以检查Linux中的哪些内容来诊断特定错误发生的原因?例如:只是内存不足(导致errnoENOMEM)-使用“free”等检查内存使用情况。内核没有足够的内存来复制页表和父进程的其他记帐信息(导致errnoEAGAIN)是否有全局进程限制?(也会导致errnoEAGAIN?)是否有每个用户的进程限制?我怎样才能知道它是什么?...? 最佳答案 Andhowcanonefindoutwhet

linux - 在 Linux 上哪些情况可能导致 fork() 或 system() 调用失败?

如何才能查明它们中的任何一个是否正在发生,并导致fork()或system()返回错误?换句话说,如果fork()或system()返回错误,我可以检查Linux中的哪些内容来诊断特定错误发生的原因?例如:只是内存不足(导致errnoENOMEM)-使用“free”等检查内存使用情况。内核没有足够的内存来复制页表和父进程的其他记帐信息(导致errnoEAGAIN)是否有全局进程限制?(也会导致errnoEAGAIN?)是否有每个用户的进程限制?我怎样才能知道它是什么?...? 最佳答案 Andhowcanonefindoutwhet