getcwd()
函數用于獲取當前工作目錄的絕對路徑
getcwd()
的返回值:如果返回值為 nullptr
,則表示發生錯誤。此時,可以使用 strerror()
函數獲取錯誤描述信息。#include <iostream>
#include <cerrno>
#include <cstring>
#include <unistd.h>
#include <limits.h>
int main() {
char cwd[PATH_MAX];
if (getcwd(cwd, sizeof(cwd)) != nullptr) {
std::cout << "Current working directory: " << cwd << std::endl;
} else {
std::cerr << "Error: " << strerror(errno) << std::endl;
}
return 0;
}
使用 try-catch
語句捕獲異常:如果 getcwd()
函數拋出異常,可以使用 try-catch
語句捕獲異常并進行處理。但是需要注意的是,getcwd()
函數實際上不會拋出異常,因此這種方法在這里并不適用。
使用 setjmp()
和 longjmp()
函數:這是一種處理異常的方法,但是它通常用于處理非局部跳轉,而不是用于處理函數返回值。在這種情況下,使用 setjmp()
和 longjmp()
可能會導致代碼難以理解和維護。因此,建議使用第一種方法來處理 getcwd()
的異常情況。