- 1
- 2
- 3
if (access(path, aflag) && mkfifo(path, mode) {
exit(-1);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+133
if (access(path, aflag) && mkfifo(path, mode) {
exit(-1);
}
Весьма интуитивная запись условия
bormand 11.04.2014 18:53 # +2
WGH 11.04.2014 20:22 # 0
Edit: а хотя у меня на FreeBSD access возвращает "ОК" на сокеты, хотя их и открыть нельзя.
WGH 11.04.2014 20:28 # 0
3Doomer 17.04.2014 14:05 # +3
guest8 03.11.2018 17:04 # −999
evg_ever 11.04.2014 20:28 # 0
bormand 11.04.2014 21:30 # +2
1) фифы нету - access вернет -1, mkfifo попытается запилить новую
2) фифа есть, но нету нужных прав - access вернет -1, mkfifo попытается запилить и всяко обломается
3) фифа есть, есть права - access вернет 0
bormand 11.04.2014 21:34 # +2
bormand 11.04.2014 21:42 # 0
Как-то так: Но на самом деле access() большого смысла тут не имеет, т.к. скорее всего фифу один хер будут открывать, и проще и атомарней смотреть на ошибку open()'а :)
Короче чтобы выбрать правильный вариант надо знать что именно делают с фифой и что делать если она уже есть/ее нет/нет прав и т.п. ;)
WGH 11.04.2014 21:52 # +1
bormand 11.04.2014 21:54 # +2
P.S. А вообще - нехуй гонять демонюг под рутом ;)
absolut 11.04.2014 22:41 # +1
Odin 03.11.2018 17:02 # 0
Ты сомневаешься в моём могуществе?
666_N33D135 03.11.2018 17:04 # 0
mkII 13.04.2014 20:49 # +1