如何查找系统上是否安装了less?
How to find if less is installed on the system?
我希望在不使用 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
以确定它是否存在并且是否可执行。
我希望在不使用 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
以确定它是否存在并且是否可执行。