Aşağıdaki kodun sadece bir kısmı burada gösteriliyor ve bir dosya türünün olup olmadığını kontrol ediyorum.Bir dosya bir bağlantı olup olmadığını nasıl anlarsınız?
struct stat *buf /* just to show the type buf is*/
switch (buf.st_mode & S_IFMT) {
case S_IFBLK: printf(" block device\n"); break;
case S_IFCHR: printf(" character device\n"); break;
case S_IFDIR: printf(" directory\n"); break;
case S_IFIFO: printf(" FIFO/pipe\n"); break;
case S_IFLNK: printf(" symlink\n"); break;
case S_IFREG: printf(" regular file\n"); break;
case S_IFSOCK: printf(" socket\n"); break;
default: printf(" unknown?\n"); break;
}
sorun: Elde st_mode
değeri sonucun ben normal bir dosya türü ve sembolik link ile benim programı test 33188.
bir printf("\nMode: %d\n",buf.st_mode);
ne zaman. Her iki durumda da çıktı "düzenli dosya" idi, yani sembolik bağlantı durumu başarısız oluyor ve nedenini anlayamıyorum? stat (2)
adam sayfasından
Soru biraz belirsizdir. Sembolik bir bağlantıyı test ediyor musunuz, program normal bir dosya mı diyor? Buf.st_mode değeri nedir? –
@Gintautas: düzenlenmiş. –
lstat() 'gerekir. stat() 'sembolik bağları izler ve işaret ettikleri dosyaları denetler. –