Разница между lstat fstat и stat в C
Я пишу школьное задание на C для поиска в файловой системе каталогов, обычных файлов и символических ссылок. Сейчас я использую lstat
для получения информации о предметах.
так в чем разница между lstat
fstat
и
3 ответов
Я также искал stat vs lstat vs fstat
и хотя на этот вопрос уже есть ответ, я бы хотел, чтобы он был отформатирован следующим образом:
lstat()
идентиченstat()
, за исключением того, что если Pathname является символьной ссылка, затем она возвращает информацию о самой ссылке, а не о файле это относится к нему.
fstat()
идентиченstat()
, за исключением того файла, о котором информация, подлежащая извлечению, указывается файловым дескриптором fd.
сходство: они оба принимают filename в качестве аргументов.
Difference: всякий раз, когда имя файла является символической ссылкой, stat() возвращает атрибуты или информацию об индексе целевого файла, связанного со ссылкой. В то время как lstat() возвращает атрибуты только ссылки.
обратитесь к manpage для stat () vs lstat ().
googling следующее: lstat v fstat v stat
первая предоставленная ссылка-это man-страница, которая описывает эти различия:http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html
на странице приведен следующий простой ответ: stat () stats файл, на который указывает путь, и заполняет buf. lstat () идентичен stat (), за исключением того, что если path является символической ссылкой, то сама ссылка является статической, а не файлом, на который она ссылается. функцию fstat() является идентично stat (), за исключением того, что файл, который должен быть stat-ed, указан файловым дескриптором fd.