Последний аргумент read()
- это количество байтов для чтения из файла, поэтому, пройдя 1
, он сделает это. До этого, вы используете open()
, чтобы получить дескриптор файла, что-то вроде этого (непроверенных код):
int fh = open("filename", O_RDONLY);
char buffer[1];
read(fh, buffer, 1);
Однако, это, как правило, не рекомендуется читать файлы побайтно, так как это существенно влияет на производительность. Вместо этого, вы должны буфер ввод и обработать его на куски, например, так:
int fh = open("filename", O_RDONLY);
char buffer[BUFFER_SIZE];
read(fh, buffer, BUFFER_SIZE);
for (int i=0 ; i < BUFFER_SIZE ; ++i) {
// process bytes at buffer[i]
}
Вы, наконец, обернуть ваш читает в цикле, пока EOF не будет достигнута.
Что вы пытаетесь? –
'read (fd, & buffer, num_bytes)' –
Вы можете использовать ['open()'] (http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html), чтобы открыть файл и получить файловый дескриптор, который может использоваться позже как аргумент для 'read'. –