C中的实路径功能示例

Ral*_*lph 14 c posix realpath

我正在寻找一个如何在C程序中使用realpath函数的示例.我似乎无法在网上或我的任何C编程书中找到一个.

pmg*_*pmg 20

realpath()功能未在C标准中描述.然而,它由POSIX 1997POSIX 2008描述.如果这就是你的意思,这是一个例子:

#include <limits.h> /* PATH_MAX */
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char buf[PATH_MAX]; /* PATH_MAX incudes the \0 so +1 is not required */
    char *res = realpath("this_source.c", buf);
    if (res) {
        printf("This source is at %s.\n", buf);
    } else {
        perror("realpath");
        exit(EXIT_FAILURE);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

PATH_MAX在<limits.h>中定义(<limits.h>来自POSIX 1997)

  • PATH_MAX是路径的最大长度.这是一个奇怪的小发明; 保证值为_POSIX_PATH_MAX,这是PATH_MAX可能的最小值.但是,许多系统都有一个"<limits.h>",它没有设置PATH_MAX,这意味着机器上路径的最大长度没有规定的限制.无论如何,它也可以依赖于文件系统.因此,您可以使用sysconf()或使用pathconf()查找值,或者您可以猜测大多数理智的人不使用长度超过1024字节的路径并使用它. (4认同)
  • `PATH_MAX`中的`+ 1`可能是'\ 0` (2认同)