stella_650
23-05-2008, 11:57
Ciao a tutti, avrei bisogno di un chiarimento per lo svolgimento di un esercizio utilizzando il linguaggio C per Linux. In particolare manca l'ultima parte dell'esercizio in cui, dopo aver recuperato l'informazione sul link simbolico creato con ln -s, mi si chiede di stampare a video il nome del file, cioè il nome del file al quale è stato creato il link.
Io ho 1 file prova e un link simbolico a prova.
Recupero le informazioni relative al link simbolico tramite lstat ma per avere il nome del file?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(int argc, char *argv[])
{
struct stat buf;
char *ptr;
/*if(argc!=2)
{
printf("Errore! Specifica un percorso in input\n");
}
else
{*/
printf("%s: ",argv[1]);
if(lstat(argv[1],&buf)<0)
{
perror("Errore sul funzionamento della lstat!!!\n");
}
if(S_ISLNK(buf.st_mode))
ptr="link simbolico";
printf("%s\n",ptr);
//}
exit(0);
}
PER recuperare l'info sul file mi faccio stampare per ora una stringa, devo invece stampare a video il nome del file... Si deve procedere su questa strada? SPERO IN UN AIUTO...grazie in anticipo
Io ho 1 file prova e un link simbolico a prova.
Recupero le informazioni relative al link simbolico tramite lstat ma per avere il nome del file?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(int argc, char *argv[])
{
struct stat buf;
char *ptr;
/*if(argc!=2)
{
printf("Errore! Specifica un percorso in input\n");
}
else
{*/
printf("%s: ",argv[1]);
if(lstat(argv[1],&buf)<0)
{
perror("Errore sul funzionamento della lstat!!!\n");
}
if(S_ISLNK(buf.st_mode))
ptr="link simbolico";
printf("%s\n",ptr);
//}
exit(0);
}
PER recuperare l'info sul file mi faccio stampare per ora una stringa, devo invece stampare a video il nome del file... Si deve procedere su questa strada? SPERO IN UN AIUTO...grazie in anticipo