溫馨提示×

c++ stat 怎樣實現精準控制

c++
小樊
120
2024-11-25 02:44:29
欄目: 編程語言

在C++中,stat函數用于獲取文件或目錄的元信息

#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int main() {
    struct stat file_stats;
    int result = stat("example.txt", &file_stats);

    if (result == 0) {
        std::cout << "File exists." << std::endl;
        std::cout << "Size: " << file_stats.st_size << " bytes" << std::endl;
        std::cout << "Last modified: " << ctime(&file_stats.st_mtime);
    } else {
        std::cerr << "Error: " << result << std::endl;
    }

    return 0;
}

在這個示例中,我們使用stat函數獲取名為example.txt的文件的信息。如果文件存在,我們將輸出文件的大小和最后修改時間。如果文件不存在,我們將輸出錯誤代碼。

要實現對文件的更精細控制,你可以使用以下選項:

  1. 使用stat函數的第二個參數(struct stat *statbuf)中的st_mode字段來檢查文件的類型和權限。例如,你可以使用S_ISREG()宏來檢查文件是否為普通文件,或者使用S_ISDIR()宏來檢查文件是否為目錄。

  2. 使用stat函數的第二個參數(struct stat *statbuf)中的st_mtime字段來獲取文件的最后修改時間,并根據需要對其進行操作。

  3. 使用stat函數的第二個參數(struct stat *statbuf)中的st_size字段來獲取文件的大小,并根據需要對其進行操作。

  4. 使用stat函數的第二個參數(struct stat *statbuf)中的其他字段(如st_uid、st_gid等)來獲取文件的用戶ID、組ID等信息,并根據需要對其進行操作。

請注意,stat函數是跨平臺的,但在某些平臺上可能需要包含不同的頭文件或使用不同的函數名稱。在使用stat函數之前,請確保了解你所使用的平臺和編譯器的要求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女