Во-первых, не игнорируйте предупреждения: ваш %d
не подходит для my_fd
.
Тогда, я думаю, что в общем случае нецелесообразно выполнять файловый ввод-вывод из ядра, за исключением "особых" случаев.
Я пробовал с O_CREAT, и все в порядке, кроме случаев, когда файл уже существует. Все остальное (в частности O_WRONLY | O_APPEND
) не дало мне никаких шансов.
Я считаю, что для того, чтобы сделать файловый ввод / вывод в ядре "as" в пространстве пользователя, необходимо знать больше вещей, и это, вероятно, немного сложно (или "опасно").
Однако попробуйте взглянуть на acct.c код.