擷取 ifstream 開啟失敗時的錯誤訊息
使用 ifstream 類別開啟檔案時,處理潛在錯誤至關重要。 fail() 方法可以用來檢查開啟失敗的情況,但是它沒有提供任何有關失敗原因的信息,例如「找不到檔案」。
幸運的是,我們可以存取系統的錯誤訊息以獲得故障的更詳細描述。每個失敗的系統呼叫都會更新全域 errno 變數。透過利用此錯誤,我們可以使用以下方法收集有關失敗的更多資訊:
cerr << "Error: " << strerror(errno);
在多執行緒應用程式中,此方法需要謹慎使用,因為任何其他系統呼叫都可能會觸發錯誤並在strerror 之前更新errno
對於遵循POSIX 標準的系統,errno值是線程本地的,確保在一個線程中設置它不會影響其值
雖然e.what() 最初可能看起來是一個更特定於C 的方法,但返回的字串取決於實現。在 G 的 libstdc 中,該字串通常不提供有用的失敗資訊。
以上是如何從「ifstream」開啟失敗中檢索詳細的錯誤訊息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!