Nhiều chức năng bảo mật của Microsoft được bao gồm trong Phụ lục K của tiêu chuẩn C11, nhưng nó không được hỗ trợ rộng rãi, vì vậy tính di động vẫn là một vấn đề. Có một nhu cầu về sự an toàn được cải thiện trong một số ứng dụng; có lẽ sự hỗ trợ sẽ cải thiện trong tương lai.
Tôi quá khứ, tôi đã làm điều đó như thế này:
#define fopen_s(fp, fmt, mode) *(fp)=fopen((fmt), (mode))
vĩ mô là đơn giản và thẳng về phía trước, đủ tốt cho một cái gì đó nhanh chóng và dơ bẩn, nhưng nó không cung cấp cho hành vi ngoại trừ fopen_s, và nó sẽ không cung cấp tính bảo mật của hàm fopen_s thực.
Cách tiếp cận chức năng của @Alex B ở trên một phần tái tạo hành vi thích hợp về lỗi; anh ta trả về errno (= EINVAL). Cách tiếp cận của ông có thể được mở rộng hơn nữa bằng cách tạo ra một ngoại lệ tham số không hợp lệ để tái tạo đầy đủ hơn hành vi của fopen_s.
Một vấn đề tương tự [ở đây] (http://stackoverflow.com/questions/14386/fopen-deprecated-warning). – luvieere