关于“php_fork_exec”的问题,小编就整理了【4】个相关介绍“php_fork_exec”的解答:
php popen和system有什么区别?. 使用方式不同。POPEN可以让用户通过标准输入/输出与被执行的命令进行通信,而system只能用于执行命令并等待其完成1。
2. 阻塞性不同。POPEN本身是不阻塞的,要通过标准I/O的读取使它阻塞;而system则会先后调用fork、exec和waitpid来执行外部命令,并在子进程运行完毕后继续向下执行2。
3. 返回值不同。POPEN返回一个标准的io文件指针,而system则会一直等待子进程运行完毕后返回结果2。
在PHP中,`popen`和`system`是用于执行外部命令的函数,它们之间有以下区别:
1. 功能不同:
- `popen`函数打开一个管道,用于执行外部命令并建立与其输入或输出流的联系。
- `system`函数执行指定的外部命令,并将结果直接输出到标准输出。
2. 返回值不同:
- `popen`函数返回一个文件指针,你可以使用该指针从外部命令的输出流中读取数据或向其输入流写入数据。
- `system`函数在执行外部命令后返回命令的退出状态码。通常,成功执行返回0,而失败返回其他非零值。
3. 使用方式不同:
- `popen`函数通常与`fread`、`fwrite`等函数一起使用,用于读取或写入外部命令的输入或输出流。
- `system`函数直接执行指定的命令,并将结果直接输出到标准输出。
综上所述,`popen`函数用于打开管道并执行外部命令,并通过文件指针进行输入和输出的操作。而 `system`函数则直接执行外部命令并返回执行结果。你可以根据具体需求选择使用哪个函数。
请教下php下的exec和query有什么不同啊?具体的官方说法不清楚,但是使用过程中,一般exec是用来执行外部程序的,调用存储过程之类的,query是用来查询数据库使用的。
什么叫exec模式?EXEC不是cisco的, 是linux的环境高级模式。
exec函数族,顾名思义,就是一簇函数,他把当前进程映像替换成新的程序文件,而且该程序通常main函数开始执行!用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。有六种不同的exec函数可供使用,它们常常被统称为exec函数。
php调用system或exec怎样立即返回?$WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run("notepad.exe", 7, false); 或者 if (substr(php_uname(), 0, 7) == "Windows"){ pclose(popen("start /B ". $cmd, "r")); } else { exec($cmd . " > /dev/null &"); }
到此,以上就是小编对于“php_fork_exec”的问题就介绍到这了,希望介绍关于“php_fork_exec”的【4】点解答对大家有用。