C: чтение файла без открытия системного вызова (только чтение!) - PullRequest
0 голосов
/ 27 июня 2018

Я просто пытаюсь прочитать данные файла в память, но я хочу, чтобы моя программа использовала как можно меньше системных вызовов. Это означает, что я пытаюсь избежать открытия или открытия. Я только хочу использовать читать. Но я не могу понять, как я могу это сделать. Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 27 июня 2018

read требует дескриптора открытого файла, который вы не можете получить, не вызвав ни open, ни openat, за исключением того, что вы читаете из stdin (fd 0).

Обновлено для добавления:

Спасибо @Yunnosch за предложение. Как насчет этого:

http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html

ИМЯ

pread, read - read from a file

СИНТАКСИС

#include <unistd.h>

[XSI] [Option Start] ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset); [Option End]

ssize_t read(int fildes, void *buf, size_t nbyte);

ОПИСАНИЕ

The read() function shall attempt to read nbyte bytes from the file associated with the open file descriptor, fildes, into the buffer pointed to by buf.
...