Articles of 叉子

在Linux中fork()的名字是什么意思?

作为主题,我想知道fork()的名字代表什么。 我不是以英语为母语的人。 现在我发现Linux API / Cmd和Windows API / Cmd之间有很大的区别,就是在Linux中,函数名不会简单地指出它的用途。 例如,我知道fork()是用来创build一个subprocess,但为什么它被称为“fork”,在字典fork中的意思是“一个具有两个或多个prongs的器具”,似乎与“Create new处理”。 又如,“grep”是用来“打印匹配一个模式的行”,为什么这个命令被称为“grep”,是否意味着“g report”? 作为一个非英语的说话者,我发现记住名字比其他平台的API要难得多。 请告诉我在哪里可以findLinux API的函数名或命令的含义。 任何帮助将不胜感激!

想要execve()使用我的预加载库进行excutable运行

我正在执行一个程序,通过第一个fork,然后执行execve()。 现在的问题是我想A使用我通常使用LD_PRELOAD做的库。 我如何在execve()中做到这一点。 谢谢

Python:何时使用pty.fork()与os.fork()

我不确定是否从我的应用程序os.fork()外部后台进程时使用pty.fork()或os.fork() 。 (如国际象棋引擎) 我希望生成的进程死亡,如果父母死亡,就像在terminal中产卵的应用程序一样。 两叉之间有什么起伏?

在这个代码中,在Linux上的fork()系统调用的行为

我已经读过书籍和在线资源,fork()系统调用会创build一个当前进程的副本,并且这两个进程都是在进行fork()系统调用之后开始执行的。 这是对的吗? 如果这是正确的,那么为什么下面的代码打印“testingtesting”? 它应该只打印一次“testing”(由父进程)。 #include <sys/types.h> /* pid_t */ #include <sys/wait.h> /* waitpid */ #include <stdio.h> /* printf, perror */ #include <stdlib.h> /* exit */ #include <unistd.h> /* _exit, fork */ int main(void) { int ctr =1; int pc = 1; printf("%s", "Test "); pid_t pidmain = fork(); return EXIT_SUCCESS; }

用Ruby 1.8和Windows分叉

我正在使用ruby1.8.7 patchlevel 302,我正在使用Windows XP系统。 我必须开始一个需要对用户input做出反应的外部过程。 如果我使用线程,进程不会反应,所以我尝试使用fork。 对于fork,外部进程会对用户input做出反应,但它不仅仅执行fork块。 例如 fork do puts 'child' end puts 'parent' Process.wait puts 'done' 在我的机器上产生以下输出: parent child parent done done 正如你所看到的“完成”和“父母”打印两次。 我可以做些什么来使孩子只执行其块,而不是更多? (由于一些gem我不能切换到Ruby 1.9)

使用PHP在Windows中进行应用程序线程化

我正在制作一个PHP应用程序,该应用程序通过参数详细说明他们应该做什么工作来产生subprocess。 更具体地说,subprocess将处理来自大型MySQL数据库的行,并且父应用程序将对行进行计数并产生具有待处理的行跨度的〜50进程。 我需要一个方法让父进程知道subprocess是否完成。 我之前在Linux中创build了这个应用程序,使用一个MySQL表来为subprocess签入。 这次我想独立于MySQL进行stream程pipe理(现在我在Windows中)。 是否有一种方法让PHP父进程在创buildsubprocess时获取“句柄”并查看它的活动? 我希望我清楚自己想要做的事情。 任何答案和build议,将不胜感激。 除了使用其他编程语言的build议之外,还有许多PHP库用于处理以及自定义类和函数

如何在C / Linux下执行外部命令而不使用系统,popen,fork,exec?

我想知道是否有任何好的方法来使用C语言而不使用system(),popen(),fork(),exec()在Linux环境中执行外部命令? 我不能使用这些function的原因是我的主应用程序已经用完了我embedded式板中的大部分系统资源(即内存)。 如果我做了一个分支,董事会将无法创build我的主要应用程序的副本。 从我读的书中,系统()和popen()实际上使用fork()在下面,所以我也不能使用它们。 我现在唯一的想法是创build一个进程,然后运行我的主应用程序,并使用IPC(pipe道或套接字)让新进程知道使用system()或popen()运行需要的外部命令并将结果返回到我的应用程序,当它完成。

spawn和fork有什么区别?

我已经在开始一个新的过程中遇到了spawn和fork ,但是有什么区别呢? 这是如何处理/解释从Unix到Windows的区别?

我怎样才能让pipe道工作在Windows上的Perl?

我试图将Unix脚本从Unix移植到Windows,但由于open函数中不支持的分叉pipe道,使得它几乎不可能工作。 代码如下: sub p4_get_file_content { my $filespec = shift; return 'Content placeholder!' if ($options{'dry-run'}); debug("p4_get_file_content: $filespec\n"); local *P4_OUTPUT; local $/ = undef; my $pid = open(P4_OUTPUT, "-|"); die "Fork failed: $!" unless defined $pid; if ($pid == 0) { # child my $p4 = p4_init(); my $result = undef; $result = $p4->Run('print', $filespec); die $p4->Errors() […]

在Windows上的Ruby中产生一个后台进程?

我基本上要求在Ruby中产生一个后台进程相同的问题,除了我需要在Windows环境中产生一个后台进程! 不幸的是,我的研究显示Windows不支持Ruby分支(只有勺子, Rimshot! )。