Ich versuche, einen Pfad von der cmd-Zeile zu lesen und dann ls 'cmd auszuführen, um nur die versteckten Dateien und ihre langen Informationen im angegebenen Pfad und dann in eine Textdatei zu drucken. Mein Problem ist, dass 'ls' zurückkehrt:Wie nur versteckte Dateien in einem Verzeichnis mit dem 'ls' cmd drucken?
ls: illegale Option -
ls: illegale Option -.
ls: illegale Option -?
ls: illegale Option - *
Hier ist mein Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define NUMARG 2
/* start main */
int main(int argc, char *argv[]){
/* define data */
DIR *dirptr;
struct dirent *dp;
int pid;
int fd = open("output_file", O_WRONLY|O_CREAT, 0666);
/* Command Line Check */
if(argc != NUMARG){
fprintf(stderr, "usage: %s dirname\n", argv[0]);
exit(1);
}
/* Open the specified directory */
if((dirptr = opendir(argv[1])) == NULL){
fprintf(stderr, "Could not open directory %s\n", argv[1]);
exit(1);
}
/* fork another process */
switch(pid = fork()){
/* succesfull child process */
case 0:
dup2(fd, 1);
close(fd);
printf("Running ls\n");
execlp("ls", "ls" , "-ld .?*", argv[1], (char*)NULL);
perror("execlp");
exit(1);
default:
sleep(5);
printf("Hitting default...\n");
break;
case -1:
perror("err");
exit(1);
}
}
Hallo, Darf ich fragen, warum Sie sich verzweigen? –
Ok, ich habe es nach dem Lesen des Dokuments aus execlp ^^ –
Versucht, die Ausgabe von ls -ld.? * In eine Textdatei zu drucken. –