- 1
- 2
- 3
if (access(path, aflag) && mkfifo(path, mode) {
exit(-1);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+133
if (access(path, aflag) && mkfifo(path, mode) {
exit(-1);
}
Весьма интуитивная запись условия
Edit: а хотя у меня на FreeBSD access возвращает "ОК" на сокеты, хотя их и открыть нельзя.
1) фифы нету - access вернет -1, mkfifo попытается запилить новую
2) фифа есть, но нету нужных прав - access вернет -1, mkfifo попытается запилить и всяко обломается
3) фифа есть, есть права - access вернет 0
Как-то так: Но на самом деле access() большого смысла тут не имеет, т.к. скорее всего фифу один хер будут открывать, и проще и атомарней смотреть на ошибку open()'а :)
Короче чтобы выбрать правильный вариант надо знать что именно делают с фифой и что делать если она уже есть/ее нет/нет прав и т.п. ;)
P.S. А вообще - нехуй гонять демонюг под рутом ;)
Ты сомневаешься в моём могуществе?