Есть пара вопросов.
Первый.
В двух книгах нашел такие строки, с помощью программ "od" или "hexdump" можно просмотреть содержимое каталога в шестнадцатеричном представлении, то есть, открыть его как файл и вывести содержимое на stdout, что-то вроде "cat dirname",
но когда я попробовал, мне было сказано, что это невозможно, так как это директория.
В связи с этим решил написать небольшую программу, которая, как я предположил, должна вывести на stdout содержимое каталога, как оно есть.
вот программа.
Код: Выделить всё
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
#include <unistd.h>
#define readcount 100000
int main (int argc, char *argv[])
{
int fd;
char* buffer;
int cread;
fd = dirfd(opendir(argv[1]));
printf ("%d\n", fd);
buffer = malloc (readcount);
if (buffer == NULL) {
fprintf (stderr, ("can not to allocate of mamory\n"));
return 0;
}
cread = read(fd, buffer, readcount);
if (cread == -1) {
fprintf(stderr, ("can't read this directory\n"));
return 0;
}
int c;
c = 0;
while (c < cread) {
c++;
putchar(*buffer);
buffer++;
}
return 0;
}
Вопрос вот в чем, вообще реально или нет сделать то, что я хочу?
и второй вопрос,
чем отличаются эти объявления
Код: Выделить всё
char** abuffer;
char **bbuffer;
char* cbuffer;
char *dbuffer;
спасибо