我希望在不使用system
的情况下实现以下行为
int ret = system("less -V > /dev/null 2>&1");
if (ret == 0) {
printf("The less executable was found.n");
}
如果系统上安装了less,我需要变量ret
为0,但不使用对system
的调用。可以用exec
或类似物吗?
可以通过system("which less")
判断less
是否安装。这样可以避免在没有安装less
的情况下调用它。如果你根本不想使用system
,你必须在你的程序中重新实现which
的功能:即,使用getenv
来获得PATH
变量,并尝试将/less
附加到每个路径上,并在结果文件上调用stat
来确定它是否存在并且是可执行的。