/dev/null 2>&1"); if (ret == 0) { printf("-6ren">
gpt4 book ai didi

c - 如何查找系统上是否安装了less?

转载 作者:行者123 更新时间:2023-12-02 01:37:32 25 4
gpt4 key购买 nike

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

关于c - 如何查找系统上是否安装了less?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com