Я работаю над реализацией оболочки Unix на C, и в настоящее время я занимаюсь проблемой относительных путей.Особенно при вводе команд.А пока мне приходится каждый раз вводить полный путь к исполняемому файлу, когда я бы просто поставил «ls» или «cat».
Мне удалось получить переменную $ PATH env.Моя идея состоит в том, чтобы разделить переменную на символ «:», затем добавить каждую новую строку к имени команды и проверить, существует ли файл и является ли он исполняемым.
Например, если мой PATH: "/ bin: / usr / bin" и я ввожу "ls", я бы хотел, чтобы программа сначала проверила, существует ли "/ bin / ls" и является ли она исполняемой, еслине переходить к "/usr/bin/".
Два вопроса:
1) Это хороший способ сделать это?(Разве это не обязательно должно быть лучшим. Я просто хочу убедиться, что это будет работать.
2) Что более важно, Как я могу проверить в C, если файл существует и являетсяисполняемый файл?
Надеюсь, я достаточно ясен, и ... хорошо, спасибо:)