Assembler #9 Запись в файлы
@Torchik_RuДоброго времени суток, господа. Сегодня мы с вами научимся записывать информацию в файлы.
sys_open
Первый аргумент для системного вызова sys_open - указатель на название файла(null-terminated строка). Второй - флаги. Третий - восьмеричное значение-режим открытия файла, про которые мы узнали ранее.
В этой таблице Вы можете увидеть некоторые флаги, которые могут пригодиться:
Описание некоторых флагов:
O_RDONLY - открытие только на чтение O_WRONLY - открытие только на запись O_RDWR - открытие на чтение и запись O_CREAT - если файла нет, то создать его
Код для создания файла и открытия его только на запись. Если файла не существует, то он будет создан:
Из примера видно, что для комбинации флагов достаточно "добавить" их друг к другу.
sys_call - возвращает файловый дескриптор файла в rax регистр. В случае ошибки, она будет возвращена в rax.
sys_write
Этот системный вызов может использоваться для записи в файл информации. Вы уже с ним знакомы, так-что стоять на этом мы не будем. Единственное изменение - мы передаем в него первым аргументом файловый декскриптор, который получили при открытии файла через sys_open.
sys_close
Получает только один аргумент - файловый дескриптор.
Код, для записи в файл: