stat fstat lstat区别
时间: 2023-08-09 15:05:46 浏览: 154
这三个函数都可以获取文件状态信息,但是作用对象和返回结果略有不同:
1. `stat()`:可以获取指定文件的状态信息,返回值为 0 表示获取成功,返回 -1 则表示获取失败。该函数获取的是文件本身的状态,如果是符号链接则获取的是链接文件本身的信息而不是链接指向的文件的信息。
2. `fstat()`:与 `stat()` 函数类似,但作用对象是一个已打开的文件描述符,即该函数获取的是文件描述符所指向的文件的状态信息。
3. `lstat()`:也可以获取指定文件的状态信息,与 `stat()` 函数类似,但是如果获取的文件是一个符号链接,那么获取到的是链接文件本身的信息而不是链接指向的文件的信息。
综上所述,这三个函数的主要区别在于作用对象及符号链接的处理方式。
相关问题
stat和fstat lstat的区别
`stat`、`fstat`、`lstat`都是用来获取文件或者文件系统对象信息的函数,它们的区别在于:
1. `stat`:获取文件信息,需要传入文件名或者路径。
2. `fstat`:获取文件信息,需要传入已经打开的文件描述符。
3. `lstat`:获取符号链接本身的信息,并不是链接所指向文件的信息,需要传入符号链接的文件名或者路径。
总的来说,这三个函数的作用都是获取文件信息,但是参数和返回值有所不同,使用时需要根据实际情况选择合适的函数。
stat\fstat\lstat
这三个函数都用于获取文件属性,但有些许差别:
- `stat()`:获取指定路径的文件属性,返回值存储在结构体 `struct stat` 中。
- `lstat()`:类似 `stat()`,但是对于符号链接文件,返回链接本身的信息,而不是链接指向的文件的信息。
- `fstat()`:获取一个已经打开的文件的属性,需要传入已打开文件的文件描述符。
这三个函数都返回一个整数值,如果返回值为 0 表示函数调用成功,否则表示失败。可以通过 `errno` 来获取更加详细的错误信息。
阅读全文