Вопрос непонятен.Если у тебя есть файловый дескриптор, то ты уже открыл файл, не?Или я чего-то не допонял? Уточни. OldFatMan ☆ (18.02.12 21:02:00 MSK) Показать ответ Ссылка
Ответ на: комментарий от OldFatMan 18.02.12 21:02:00 MSK Если у тебя есть файловый дескриптор, то ты уже открыл файл, не? Быть может ему надо определить - занят ли дескриптор... Deleted (18.02.12 21:05:54 MSK) Показать ответ Ссылка
ну ппц… да любую недеструктивную операцию над файлом проведи, lseek(fd, 0, SEEK_CUR), fstat() и т.п. и проверь возвращаемое значение… arsi ★★★★★ (18.02.12 21:06:05 MSK) Ссылка
Ответ на: комментарий от Deleted 18.02.12 21:05:54 MSK Так пусть так и напишет.Уже не в первый раз - подробности объявляемых задач из спрашивающих клещами и пытками вытягивать приходится. :)Тогда сделать fdopen - если ошибка, то дескриптор уже занят. Вроде так? OldFatMan ☆ (18.02.12 21:08:49 MSK) Ссылка
#include <unistd.h> #include <fcntl.h> #include <stdio.h> #include <errno.h> int main () { int fd = open("/dev/null", O_RDONLY); if (fd == -1) { perror("open"); return 1; } int flags = fcntl(fd, F_GETFL); printf("file %s\n", flags == -1 && errno == EBADF ? "closed" : "opened"); close(fd); flags = fcntl(fd, F_GETFL); printf("file %s\n", flags == -1 && errno == EBADF ? "closed" : "opened"); return 0; } Olegymous ★★★ (18.02.12 21:09:01 MSK) Показать ответ Ссылка
Ответ на: комментарий от Olegymous 18.02.12 21:09:01 MSK int flags = fcntl(fd, F_GETFL);Да, можно так. Уже выяснил. Но всё-равно - спасибо. pacify ★★★★★ (18.02.12 21:16:52 MSK) автор топика Ссылка