亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ getcwd如何處理符號鏈接循環

c++
小樊
81
2024-11-27 14:52:13
欄目: 編程語言

getcwd() 函數用于獲取當前工作目錄的絕對路徑

#include <iostream>
#include <limits.h>
#include <unistd.h>
#include <sys/stat.h>
#include <string.h>

bool follow_symlinks(const char *path, char *buffer, size_t size) {
    ssize_t len = readlink(path, buffer, size - 1);
    if (len < 0) {
        return false;
    }
    buffer[len] = '\0';

    if (len == 0 || strcmp(buffer, path) == 0) {
        return true;
    }

    return follow_symlinks(buffer, buffer, size);
}

int main() {
    char cwd[PATH_MAX];
    if (getcwd(cwd, sizeof(cwd)) != nullptr) {
        std::cout << "Current working directory: " << cwd << std::endl;
    } else {
        perror("getcwd() error");
        return 1;
    }

    return 0;
}

在這個示例中,我們定義了一個名為 follow_symlinks 的輔助函數,它遞歸地跟隨符號鏈接,直到找到一個非符號鏈接的目標或達到最大遞歸深度。然后,我們在 main 函數中使用 getcwd() 獲取當前工作目錄,并調用 follow_symlinks() 函數來處理可能的符號鏈接循環。

0
永城市| 梅州市| 广饶县| 大余县| 儋州市| 庐江县| 丰镇市| 客服| 成都市| 临清市| 德安县| 潼关县| 七台河市| 新乡市| 定西市| 鲁山县| 攀枝花市| 崇明县| 宁阳县| 枣阳市| 汤阴县| 永安市| 云和县| 安达市| 建湖县| 永年县| 邯郸市| 甘泉县| 措美县| 通辽市| 五家渠市| 丰台区| 天等县| 深圳市| 扬中市| 库伦旗| 揭西县| 五大连池市| 咸丰县| 玉屏| 招远市|