C语言 如何查找系统上是否安装了less



我希望在不使用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来确定它是否存在并且是可执行的。

最新更新