Я хотел бы узнать, установлена ли в системе программа less
. Мне не разрешено использовать прямой system("which less")
из-за моих требований. Итак, я собираюсь попробовать PATH
s в переменной PATH
и выполнить 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
, но я не знаю, что делать дальше. Можете вы помочь мне? Я думаю, что я должен токенизировать свой 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.
which
или оболочка распознали бы их, если бы они были в PATH. (Ну, оболочка всегда может хранить элементы PATH в массиве и сделать PATH переменной только для чтения, объединенной из элементов массива. Но тогда скрипты (и программы), пытающиеся установить PATH, потерпят неудачу.) - person Peter - Reinstate Monica   schedule 19.05.2015:
в его имени, также является большим недостатком безопасности... - person Eregrith   schedule 19.05.2015