:)
Но через proc - это не портабельно получается.
Там еще получалось, что по fd можно получить номер inode, но как потом inode преобразовать в имя файла неизвестно, разве что перебором.
>А как быть в случае, когда у файла несколько имен?
Файл по заданному файловому дескриптору мог быть открыт лишь по одному имени. Для ядер Linux с поддержкой dentry cache (а ето все обозримые версии Linux) имя можно раскрутить до корня текущего процесса через /proc. :)