我正在用C语言实现一个Unix shell,目前遇到的问题是相对路径。特别是在输入命令时。现在每次都必须输入可执行文件的完整路径,而我更希望只需输入"ls"或"cat"。
我已经成功获取了$PATH环境变量。我的想法是在":"字符处将变量分割,然后将每个新字符串附加到命令名称上,并检查文件是否存在且可执行。
例如,如果我的PATH是"/bin:/usr/bin",我输入"ls",我希望程序首先检查"/bin/ls"是否存在并可执行,如果不存在则转到"/usr/bin/"。
两个问题:
1)这是一个好方法吗?(不一定要是最好的,只想确保它能够工作。)
2)更重要的是,我该如何在C语言中检查文件是否存在且可执行?
希望我表述清楚了,谢谢 :)