Có cách nào để có được một điều kiện lỗi cụ thể khi một dòng C++ mở không thành công? Đó là, cho dù nó không thành công bởi vì các tập tin không tồn tại, hoặc quyền đã sai, hoặc vv Về cơ bản tôi đang tìm kiếm chức năng tương đương với errno cho fopen() trong đồng bằng C.Bạn có thể nhận được một điều kiện lỗi cụ thể khi mở một luồng C++ không?
GCC dường như đặt errno đúng cách , nhưng điều đó dường như không được yêu cầu bởi tiêu chuẩn C++ và tôi không thể xác định liệu đây có phải chỉ là một tạo phẩm theo cách họ đã triển khai luồng hay một tính năng có chủ ý (và do đó tôi không biết liệu nó có tồn tại lâu dài hay không phiên bản).
Có cách nào để nhận thông tin này một cách đáng tin cậy, hoặc bằng tiêu chuẩn C++ hoặc không vô tình trong một hoặc nhiều trình biên dịch chính?
Bạn có bất kỳ liên kết nào đến nơi được trình bày trong tài liệu VS không? Tôi đã nhìn vào các trang dòng trên MSDN nhưng tôi không thể tìm thấy bất kỳ đề cập đến hành vi này. Tôi không nói nó không hoạt động như thế này nhưng sẽ tốt hơn nếu thấy một số tài liệu chính thức. –
Tôi không nghĩ rằng nó được trình bày trong tài liệu VS. Hoặc có lẽ google-foo của tôi quá yếu. Tuy nhiên tôi đã tìm thấy một số bài viết diễn đàn sao lưu hồi ức của tôi rằng fopen và như thế là tất cả hàm bao quanh các hàm winapi tương đương của chúng. Vì vậy, fopen thực sự đang gọi CreateFile, đặt mã lỗi. Bất kể, một bài kiểm tra nhanh phải chịu đựng (ít nhất là để dễ dàng mô phỏng các lỗi tệp). Tôi sẽ tự mình làm và đăng kết quả. Nhưng, than ôi, tôi không có quyền truy cập dễ dàng vào phòng thu trực quan vào lúc này. –