>Только вам.
>man 2 open
>man 2 chmod Причем тут chmod вообще не ясно. Режим открытия файла и права файла на диске - разные вещи.
Файл может иметь права 666, но открыть его можно, например, только на чтение. И в этом случае по полученному дескриптору записать не в файл не удастся!.
В приведенном Торвальдсе примере отсутствуют флаги, описывающие режим открытия файла (O_RDONLY O_WRONLY O_RDWR). И встает вопрос, в каком режиме будет открыт файл (когда ни один из флагов не указан)?? И тут есть интересный момент, как видно из кода, флаги скалываются через "или" (|). А код соответствующий флагу O_RDONLY = 0х0 (если я не ошибаюсь). Значит, если не один из флагов не указан, то подразумевается как раз O_RDONLY. То есть записать в файл не получиться!!!!
Если бы вы глянули ман, вы бы могли заметить, что:
creat() is equivalent to open() with flags equal to O_CREAT|O_WRONLY|O_TRUNC.