Системный вызов - это сервис, предоставляемый ядром Linux. В программировании на C функции определены в libc, которые предоставляют оболочку для многих системных вызовов. Вызов функции write()
является одним из этих системных вызовов.
Первый аргумент, переданный write()
, - это дескриптор файла для записи. Символические константы STDERR_FILENO
, STDIN_FILENO
и STDOUT_FILENO
соответственно определены как 2 , 0 и 1 в unidtd.h . Вы хотите написать в STDOUT_FILENO или STDERR_FILENO .
const char msg[] = "Hello World!";
write(STDOUT_FILENO, msg, sizeof(msg)-1);
Вы также можете использовать функцию syscall()
для выполнения косвенного системного вызова, указав номер функции, определенный в syscall.h или unistd.h, Используя этот метод, вы можете гарантировать, что вы используете только системные вызовы. Вам может пригодиться Краткий справочник по системному вызову Linux (PDF Link).
/* 4 is the system call number for write() */
const char msg[] = "Hello World!";
syscall(4, STDOUT_FILENO, msg, sizeof(msg)-1);