Помогите советом.
Необходимо узнать - является ли файл символьной ссылкой или обычным файлом.
У меня slackware 9.0, файловая система reiserfs, ядро 2.4.22.
В каталоге создаю файл textfile.txt и делаю на него символьную ссылку proba.txt.
Пишу программу:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
struct stat buf;
stat("./proba.txt", &buf);
printf("st_mode - %#o\n", buf.st_mode);
}
Компилирую эту программу и запускаю: выдает
st_mode - 0100644.
Меняю "./proba.txt" на "textfile.txt", компилирую, запускаю:
st_mode - 0100644.
Судя по 'man stat' 644 - это permissions, а 0100 - это обычный файл(а 0120 - symbolic link).
Получается что программа симв. ссылку все равно видит как файл? Это что - особенность файловой системы или я что-то не так понимаю?
Заранее спасибо.
Ответ на:
комментарий
от Die-Hard
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Help! Почему вызов ioctl FIONREAD для файла /dev/random завершается неудачей?! (2003)
- Форум stat() неправильно работает с cifs (2009)
- Форум Не могу разобраться с ошибкой сегментирования (2017)
- Форум stat (2006)
- Форум Системный вызов sendfile ??? (2008)
- Форум Как писать CD? ioctl? (2003)
- Форум [C++] Ошибка сегментации (2008)
- Форум вопрос про select() (2013)
- Форум [C] Com Port (2007)
- Форум хочу узнать текущй год, а gcc не дает (2007)