我如何使用system()从c程序调用php脚本


How do i call a php script from a c program using system()?

我正在编写一个c程序,它将在后台每隔几秒钟调用一个php脚本。所以当你第一次调用这个程序时,它将通过fork创建一个子进程,然后退出父进程,而子进程将处于无限循环中。到目前为止,在这个无限循环中,我在while循环中有system("echo hello >> daemon.txt")行,它相应地更新,所以我知道这个过程是有效的。然而,当我调用我的脚本,它似乎没有执行。

我的php脚本timeChecker.php

#!/usr/bin/php <?php $handle =fopen("hello","a"); fwrite($handle, "boo'n"); fclose($handle); ?>

当使用php timeChecker.php或。/timeChecker.php从命令行调用时,代码将按预期执行。

然而,在尝试了system("php timeChecker.php"), system("/usr/bin/php timeChecker.php"), system("/usr/bin/php var/www/timeChecker.php"), system("/var/www/timeChecker.php")等多种调用命令的方法后,代码仍然没有执行。是我做错了什么简单的事情吗?或者我应该简单地使用另一种检查脚本的方法?

正如您在问题中建议的那样,php脚本位于"/var/www"中。您有在该目录中执行的特权吗?

test是通过system()调用脚本的c程序。我让它这样工作:

    sudo mkdir /var/www/script_dir
    sudo mv timeChecker.php /var/www/script_dir
    sudo mv test /var/www/script_dir
    sudo chown -R myusername:myusername /var/www/script_dir

从script_dir执行test .