Recriar a função ls -lisa em linguagem C

Boas, preciso de ajuda.
Tenho um trabalho da faculdade em que o objectivo é recriar a função ls -lisa(usada para mostrar as propriedades de um directório ou ficheiro.
Estou algo para o encalhado e pedia-vos ajuda no sentido se conhecem como é a função ls implementada ou se há manuais que me possam ajudar.
Já estou a utilizar o man 2 stat que já me deu uma grande ajuda.

Abraço
 
execlp("ls","ls","-lisa",NULL);

Mas cuidado, ao chamar esta função estás a "dizer" ao programa que o fluxo de execução deve ser redireccionado para o programa ls e portanto tudo o que vier no código a seguir a esta função não será executado. Para resolver isso podes fazer algo deste género:
Código:
if (fork()==0)
    execlp("ls","ls","-lisa",NULL);
else {
    //restante código do programa a ser executado pelo processo principal
}
 
Última edição:
Neptune, obrigado pela dica, mas infelizmente o que o prof me pediu foi uma alternativa ao ls -lisa, por isso se ele me encontra a utiliza-lo provavelmente vai anula-lo.
Mas mais uma vez obrigado :D

AliFormCairo vou procurar essas duas funções a ver o que consigo.
 
Algo me diz que não é esse o objectivo do trabalho. Caso seja, nem precisas de ir tão longe, podes simplesmente dar uso à função system.

Ele não explicou bem o que pretendia, daí eu ter dito o que disse. Quanto ao system, não passa de uma chamada a um fork/exec, por isso não vejo uma razão para subir ainda mais um nível de indirecção.

Neptune, obrigado pela dica, mas infelizmente o que o prof me pediu foi uma alternativa ao ls -lisa, por isso se ele me encontra a utiliza-lo provavelmente vai anula-lo.
Mas mais uma vez obrigado :D

AliFormCairo vou procurar essas duas funções a ver o que consigo.

Alternativa portanto será algo que recrie a função ls e não algo que a utilize, certo? Podes consultar o código da função ls aqui: ftp://ftp.gnu.org/gnu/coreutils/coreutils-6.9.tar.gz ,mas tens um longo caminho a percorrer se o objectivo for mesmo recriar o ls.
 
Back
Topo