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的脚本(和程序)将失败。)