Tag: 子进程

如何让Python GUI调用用C编写的遗传算法

我是Stack Overflow的新手。 我有一个用C编写的遗传算法,它以0-100的forms接受用户输入,并输出一个数字数组。 C代码是一个完整的独立编译程序。 它有一个命令行界面。 我对编程比较陌生,主要是黑客攻击,直到找到特定任务的解决方案。 我在阅读Python Subprocess管理文档时非常困惑。 我有一个使用tkinter用Python编写的GUI,我有一个框,用户可以在其中键入他们的响应值(0-100)。 我的代码中也有一个空数组,我希望用遗传算法的输出填充。 用户将使用该数组作为某些内容,给出另一个响应(0-100)C代码将获取该响应,生成另一个数字数组,并继续该过程。 我的问题是,任何人都能用简单的术语向这个新手解释如何使用子进程模块将我的python GUI和C代码遗传算法链接到一起吗? 谢谢!

如何使用C语言传递输入并将输出检索到子进程

我在Windows中有一个exe程序,终端的工作原理如下 > program.exe parameter01 file entry01 (user types entry01) output01 entry02 (user types entry02) output02 … until the combination Ctrl+D is pressed. 我需要用C语言创建一个“子进程”,它能够运行程序并将条目发送到“子进程”并以char []或字符串forms接收输出。 我知道我必须使用CreateProcess方法,但我不知道如何传递输入之类的条目并检索输出,我该怎么做? 我用Java看过这个,但我需要用C语言实现这个function。

从Python线程生成时,为什么子进程的输出会延迟?

这是我昨天发布的扩展,现在还没有解决: 为什么我的子程序的Python线程没有按预期工作? 与此同时,我发现了一些有趣的细节,所以我决定创建一个新post。 为了实现这一点:当从线程生成子进程时,存在一些问题。 平台:Windows 7企业版,Python 3.6.1 在下面的代码中,我想运行一个C-executable并将其输出到stdout成一个字符串。 出于测试目的,可执行文件接受两个参数:延迟和文件名(此处未使用)。 程序将Sleep now写入stdout ,睡眠给定的毫秒数,最后after sleep和END after sleep写入。 这是可执行文件的C源代码: int main(int argc, char *argv[]) { int sleep = 0; FILE * outfile = NULL; if (argc > 1) { sleep = atoi(argv[1]); } if (argc > 2) { outfile = fopen(argv[2], “w”); } printf(“Sleep now…\n”); Sleep(sleep); if (outfile) […]

解释这段代码的工作原理; 子进程如何返回值以及在哪里?

我不知道子进程返回的值是怎么回事? 输出为6,7; 问题来源: http : //www.cs.utexas.edu/~mwalfish/classes/s11-cs372h/hw/sol1.html Program 1: main() { val = 5; if(fork()) wait(&val); val++; printf(“%d\n”, val); return val; }

SIGCHLD是在Linux上的SIGCONT上发送的,而不是在macOS上发送的

在主要过程中,我听SIGCHLD: signal(SIGCHLD, &my_handler); 然后我fork() , execv()并让它在后台运行(例如/ bin / cat)。 当我尝试从终端向子进程发送SIGSTOP时, my_handler() 。 但是当我尝试向它发送SIGCONT时,处理程序不会在macOS上调用,而是在我的Ubuntu上执行。 人: SIGCHLD:儿童身份已发生变化。 我错过了什么吗? 这是预期的行为吗? 我在Ubuntu上编写了我的应用程序,并期望它也可以在mac上运行。 我也试过sigaction() ,但结果相同。 这是一个示例代码,用于演示: #include #include #include #include #include #include void my_handler(int signum) { printf(“\t SIGCHLD received\n”); fflush(stdout); } void my_kill(pid_t pid, int signum) { printf(“Sending %d\n”, signum); fflush(stdout); kill(pid, signum); printf(“Sent %d\n\n”, signum); fflush(stdout); } int main() […]

命令行应用程序:如何将子进程附加到xcode调试器?

我目前正在C中创建一个命令行应用程序,其中创建了许多子进程。 所以我需要调试这个子代码。 我在Xcode上创建了一个子进程,如下所示。 (参见断点和运行光标。) 执行一些语句后,我得到xcode将GBN(885)附加到xcode调试器,如下图所示。 它不起作用。 如何将子进程附加到xcode调试器? 先感谢您。

写入子进程文件描述符

我有一个程序“Sample”,它从stdin和非标准文件描述符(3或4)获取输入,如下所示 int pfds[2]; pipe(pfds); printf(“%s”,”\nEnter input for stdin”); read(0, pO, 5); printf(“\nEnter input for fds 3”); read(pfds[0], pX, 5); printf(“\nOutput stout”); write(1, pO, strlen(pO)); printf(“\nOutput fd 4”); write(pfds[1], pX, strlen(pX)); 现在我有另一个程序“Operator”,它使用execv在子进程中执行上述程序(Sample)。 现在我想要的是通过“运算符”向“Sample”发送输入。

多个子进程

有人可以帮助我如何创建多个具有相同父级的子进程,以便完成特定工作的“某些”部分吗? 例如,应用子进程的外部排序算法; 每个子进程对一部分数据进行排序,最后父进程合并它们。 编辑:也许我应该提到使用循环分叉多个子进程..