处理执行(exec)程序

时间:2014-03-07 18:03:17

标签: php

我的程序应该读取用户ID和密码。如何让它在整个过程中发挥作用。

1 个答案:

答案 0 :(得分:2)

1)阅读execl()函数。此功能不返回。当验证程序结束时,孩子将退出。因此你的write()调用永远不会发生。

2)您似乎在源代码上调用execl()。您需要将源代码编译成可执行程序才能以这种方式运行它。检查execl()是否像这样失败:

execl("/bin/bash", "bash", "-c", "echo hello", NULL); // Only returns if execl fails
perror("execl failed");
exit(1); // Make sure child exits if execl fails

3)在调用fork之后,你应该为孩子检查(pid == 0)。你错误地测试了(pid),对于不是孩子的父母来说这是正确的。

4)write()调用应该由父节点进行,而不是由子节点进行。在孩子执行后,它将成为验证程序,永远不会返回到您的代码。

这是一个开始。祝你好运!