Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我如何实现像以下程序那样的功能?_C_String_Path_Strtok_Stat - Fatal编程技术网

C 我如何实现像以下程序那样的功能?

C 我如何实现像以下程序那样的功能?,c,string,path,strtok,stat,C,String,Path,Strtok,Stat,我想知道系统上是否安装了less程序。由于我的要求,我不允许使用直接系统(“更少”)。因此,我将尝试PATH变量中的PATHs,并对文件执行stat,查看是否安装了less。但是如何在我的路径中附加更少的内容呢?我从这个代码开始 pathValue = getenv ("PATH"); if (! pathValue) { printf ("'%s' is not set.\n", "PATH"); } else { printf ("'%s' is set to %s.\n",

我想知道系统上是否安装了
less
程序。由于我的要求,我不允许使用直接
系统(“更少”)
。因此,我将尝试
PATH
变量中的
PATH
s,并对文件执行
stat
,查看是否安装了less。但是如何在我的
路径中附加更少的内容呢?我从这个代码开始

pathValue = getenv ("PATH");
if (! pathValue) {
    printf ("'%s' is not set.\n", "PATH");
}
else {
    printf ("'%s' is set to %s.\n", "PATH", pathValue);
}
现在它正确地打印了我的
路径
,但我不知道如何继续。你能帮助我吗?我认为我必须标记我的pathValue,我如何才能做到这一点

$ ./a.out 'PATH' is set to /home/developer/google-cloud-sdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games.

我相信,
getenv(“路径”)返回指向字符串的指针,如

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
显然,我们可以看到,不同的目录路径是分隔的。所以

  • 您可以开始将
    路径值
    标记为和
    。每个生成的令牌都应充当检查文件的目录路径
  • 使用检查是否存在

  • 谷歌没有吗?可能是@Eregrith的副本是的,但我必须标记路径,我想,你在谷歌上搜索过“C标记字符串”吗?顺便说一句,如果你想不出一点关于如何标记字符串的想法,我们告诉你的任何东西都不会对你有任何帮助;特别是它可以包含冒号。虽然只有病态思维才会有这样的目录,但我现在还不清楚,如果它们在路径中,你或
    哪个
    或外壳会识别它们,以及如果:如何识别它们。(好吧,shell可以始终将PATH元素保留在数组中,并使PATH成为与数组元素关联的只读变量。但是,尝试设置PATH的脚本(和程序)将失败。)