нового файлового дескриптора, по идее, могут возникнуть неприятности (состояние гонки). Да и не всегда newfd является минимальным файловым дескриптором, так что fcntl не подходит.
ничего решительно неясно. атомарно реализовать где? почему это нужно реализовать? какая платформа, что вообще ты делаешь, зачем?
Чем тебе не подошло просто мьютекс на операцию повесить?
В книге Linux API Исчерпывающее руководство дано такое задание. Платформа Linux.
Просто до мьютексов главы ещё не дошли, так что я их пока не могу использовать, по идее.
а что ты хочешь атомарно сделать? что конкретно это означате?
Закрыть newfd и связать тот дескриптор файла, который он удерживал, с oldfd.
так поэтому это и системный вызов — потому что из юзерспейса сделать это атомарно — невозможно.
ты можешь пытаться брать какую-то блокировку, которая будет гарантировать сериализацию — таким фашистким способом решать проблемы всегда можно (но не нужно).
Спасибо за ответ.
обращайся если надо :)
Обсуждают сегодня