Опять вопрос о чтении файла каталога с C - PullRequest
0 голосов
/ 06 октября 2019

Как мы можем использовать функции C, открывающие / читающие / закрывающие правильно, чтобы читать каталог linux ?. Я заметил, что некоторые другие задавали этот вопрос ранее, о чтении каталогов в C, а также то, что некоторые из них предлагают использовать функции readdir / opendir / closedir, я знаю, но книга RnK (язык программирования C) фактически определяет или вводит эти readdir/ opendir / closedir / functions, проблема в том, что функция read () «не читает» должным образом каталоги;он возвращает -1 вместо числа прочитанных байтов. Есть ли какие-либо изменения в фактической функции C read (), которая производит это, или это необходимо для read ()?

Вот мой пример кода:

#include <sys/types.h>
#include <unistd.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>


int main(){
int fd;
size_t nbytes;
ssize_t bytes_read;
char buf[20];

fd=open(".",O_RDONLY,0);
nbytes = sizeof(buf);
bytes_read = read(fd, buf, nbytes);
printf("Buf size: %ld file descriptor: %d bytes readed:
%ld\n",nbytes,fd,bytes_read);

}

Компиляция приведенного выше кода в чтении Ubuntu Linux дает Bytes_read = -1. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...