当前位置:  开发笔记 > 编程语言 > 正文

unix路径搜索C函数

如何解决《unix路径搜索C函数》经验,为你挑选了1个好方法。

我正在编写UNIX shell,我必须使用execv()系统调用来创建一个进程.其中一个参数execv()是可执行文件的文件路径.因此,如果有人输入/bin/ls,它将运行ls可执行文件.但我需要的是一个函数,当ls输入时,它将搜索文件路径ls(如which命令).是否有允许我这样做的功能?

不幸的是,这是一个我不允许使用的学校项目execvp().我需要实现一些路径搜索功能,然后将该文件路径添加到execv()参数中.



1> Steve Baker..:

使用PATH = getenv("PATH")摆脱环境的路径字符串,然后用连续呼叫strtok(PATH,":"),然后strtok(NULL,":")从路径解析出PATH字符串转换成数组char **path,您将需要与分配malloc().将path[x]+ '/'+ argv[0]放入缓冲区,并使用access(buffer, X_OK)以查看是否可以在该路径位置执行文件,如果是,请执行您的execv(buffer,argv).

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有