Хотя я понимаю, как составить список файлов в вашем текущем каталоге на C, мне было интересно, возможно ли это, и если да, то как вы могли бы добавить больше информации в этот список? Например, если я хотел выдать те же результаты, что и команда в Linux, например, ls -alU --time-style=long-iso
, а не только файлы ниже, как это можно сделать? Будут ли использоваться различные системные вызовы?
Токовый выход
.
..
.git
README.md
lsdir
lsdir.c
Желаемый выход
total 13
drwx--S--- 3 bh636683 colord 512 2019-03-31 20:55 .
drwx--S--- 8 bh636683 colord 512 2019-03-31 20:43 ..
drwx--S--- 8 bh636683 colord 512 2019-03-31 20:47 .git
-rw------- 1 bh636683 colord 14 2019-03-31 20:47 README.md
-rwx------ 1 bh636683 colord 7296 2019-03-31 20:55 lsdir
-rw------- 1 bh636683 colord 343 2019-03-31 20:55 lsdir.c
КОД ТАК FAR
#define _XOPEN_SOURCE 700
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main (void)
{
DIR *dp;
struct dirent *ep;
dp = opendir ("./");
if (dp != NULL)
{
while (ep = readdir (dp))
puts (ep->d_name);
(void) closedir (dp);
}
else
perror ("Couldn't open the directory");
return 0;
}