我该如何实现程序的功能呢?

时间:2015-05-19 07:01:46

标签: c string path strtok stat

我想查找系统上是否安装了程序less。由于我的要求,我不允许使用直接system("which less")。因此,我将尝试PATH变量中的PATH s并对文件执行stat以查看是否安装了较少的PATH。但是,我如何减少每个pathValue = getenv ("PATH"); if (! pathValue) { printf ("'%s' is not set.\n", "PATH"); } else { printf ("'%s' is set to %s.\n", "PATH", pathValue); } 的追加量?我从这段代码开始

PATH

现在它正确打印我的$ ./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. ,但我不知道如何继续。你能帮助我吗?我认为我必须将我的路径值化,我该怎么做?

var url = URL.createObjectURL(blob);

var viewerUrl = 'web/viewer.html?file=' + encodeURIComponent(url);

// TODO: Load the PDF.js viewer in a frame or new tab/window.

//-- Abobe code opens a new window but with errors : 'Missing PDF 
// blob://http://server-addr:port/converted-blob' 

1 个答案:

答案 0 :(得分:2)

我相信,getenv ("PATH");会返回一个指向字符串的指针,如

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

显然,我们可以看到,不同的目录路径是:分隔的。所以,

  1. 您可以使用strtok()pathValue作为分析员开始对:进行标记。每个生成的令牌都应作为检查文件的目录路径。
  2. 使用stat()检查存在。