В общем есть прога, которая форкает -е число процессов, которые после выполнения своего пишут в лог. Как правильно это сделать ? пока делаю так: snprintf(buf_r, STR_BUF-1, "%s %d\n", buf, result); if ((fd = open(cur_log,O_WRONLY|O_CREAT|O_APPEND),S_IRUSR) == -1) { perror("Unable to open log file"); exit(-1); } if (flock(fd,LOCK_EX)) { perror("Unable to get exclusive lock for log file"); close(fd); exit(-2); } write(fd,buf_r,sizeof(char)*strlen(buf_r)); if (flock(fd,LOCK_UN)) { perror("Unable to remove exclusive lock for log file"); close(fd); exit(-3); } close(fd); Насколько это корректно? Просто время от времени прога выдает: Unable to get exclusive lock for log file: Bad file descriptor Unable to get exclusive lock for log file: Bad file descriptor Unable to get exclusive lock for log file: Bad file descriptor Хотя в лог все равно записывается.
Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от kosmonavt
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cvv
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как сделать, чтоб попытка exclusive flock не давала делать shared flock (2014)
- Форум настройка mgetty (2006)
- Форум ошибка сигментирования в so (2016)
- Форум Не блокируется pid-файл (2014)
- Форум сваливается send (сокет) (2008)
- Форум Segmentation fault core dumped (2022)
- Форум bind перестал стартовать (2011)
- Форум Неправильное выделение памяти (2006)
- Форум Не работает чтение с web-камеры (v4l2) (2024)
- Форум Покритикуйте плагин (2018)