c語言fopen_s的用法,fopen和fopen_s用法的比較

參考:

在定義FILE * fp 之后,fopen的用法是:?fp?= fopen(filename,"w")。而對于fopen_s來說,還得定義另外一個變量errno_t err,然后err = fopen_s(&fp,filename,"w")。返回值的話,對于fopen來說,打開文件成功的話返回文件指針(賦值給fp),打開失敗則返回NULL值;對于fopen_s來說,打開文件成功返回0,失敗返回非0。

在vs編程中,經常會有這樣的警告:warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use_CRT_SECURE_NO_WARNINGS. See online help for details.是因為? fopen_s比fopen多了溢出檢測,更安全一些。

#include

FILE *stream, *stream2;

int main( void ) { ?? int numclosed; ?? errno_t err;

// Open for read (will fail if file "crt_fopen_s.c" does not exist) ?? if( (err? = fopen_s( &stream, "crt_fopen_s.c", "r" )) !=0 ) ????? printf( "The file 'crt_fopen_s.c' was not opened\n" ); ?? else ????? printf( "The file 'crt_fopen_s.c' was opened\n" );

// Open for write? ?? if( (err = fopen_s( &stream2, "data2", "w+" )) != 0 ) ????? printf( "The file 'data2' was not opened\n" ); ?? else ????? printf( "The file 'data2' was opened\n" );

// Close stream if it is not NULL? ?? if( stream) ?? { ????? if ( fclose( stream ) ) ????? { ???????? printf( "The file 'crt_fopen_s.c' was not closed\n" ); ????? } ?? }

// All other files are closed: ?? numclosed = _fcloseall( ); ?? printf( "Number of files closed by _fcloseall: %u\n", numclosed ); }

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533481.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php redis 投票_高可用Redis服務架構分析與搭建

HorstXuhttps://www.cnblogs.com/xuning/p/8464625.html基于內存的Redis應該是目前各種web開發業務中最為常用的key-value數據庫了,我們經常在業務中用其存儲用戶登陸態(Session存儲),加速一些熱數據的查詢(相比較mysq…

android studio 啟動畫面,Android Studio 利用Splash制作APP啟動界面的方法

public class SplashActivity extends Activity {// private final int SPLASH_DISPLAY_LENGHT 2000; // 兩秒后進入系統Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().addFlags(WindowManager.LayoutParams.…

android驅動測試,Android: 通過 cucumber 驅動 monkey 做穩定性測試

主要內容穩定性測試是什么Monkey 介紹自動化 Monkey穩定性測試是什么通過隨機點擊屏幕一段時間,看看 app 會不會奔潰,能不能維持正常運行。Monkey 介紹Monkey 是一個命令行工具,它可以運行在我們的模擬器或者設備當中。它可以發送一些偽隨機(…

gradle 查看依賴類庫版本_Android studio中查看依賴的第三方庫的歷史版本和最新版本...

在日常開發過程中,我們通過會依賴很多的第三方庫項目。類似這樣:dependencies {compile com.android.support:support-v4:24.2.1compile com.google.code.gson:gson:2.4compile com.lzy.net:okhttputils:1.7.0compile com.github.ybq:Android-SpinKit:1.…

set和map去重調用什么方法_【ES6】Set、Map

SetSet 是 ES6 提供給我們的構造函數,能夠造出一種新的存儲數據的結構特點:只有屬性值沒有屬性名,成員值唯一用途:可以轉成數組,其本身具備去重(自動去重),交集,并集,差集的作用等參…

cygwin 編譯 android vlc,Cygwin?編譯?VLC?問題

Cygwin 編譯 VLC遇到了這么多問題,不過還好最后編譯過去了。問題1:gcc -mno-cygwin -Wsign-compare-Wall -mms-bitfields -pipe -o libaccess_output_dummy_plugin.dll-g-shared -u _vlc_entry__0_8_6 -L/usr/win32/liblibaccess_output_dummy_plugin.a …

kvm上添加萬兆網卡_爛泥:為KVM虛擬機添加網卡

本文首發于爛泥行天下。前幾篇文章介紹了有關KVM安裝虛擬機以及如何給虛擬機添加硬盤,今天我們再來介紹下有關如何給KVM虛擬機添加網卡。給KVM虛擬機添加網卡,可以分為兩種形式:圖形界面的和virsh attach-interface命令的。圖形界面的很簡單&…

android studio日歷小程序,android studio無法加載日歷界面

LayoutInflater inflater (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE); //載入界面view inflater.inflate(R.layout.pumkin_calendar,null);AlertDialog.Builder ad;ad new AlertDialog.Builder(pumkinLand.this);ad.setView(view);…

gazebo 直接獲取傳感器數據_5個使傳感器更簡單的技巧

傳感器遍布地球表面和周圍空間,為世界提供數據。這些廉價的傳感器是物聯網背后的驅動力之一,也是我們社會現在面臨的數字革命。然而,連接到傳感器并從傳感器獲取數據并不總是直截了當或容易的。這里有五個提示,可以幫助工程師第一…

paylinks.php_畢業設計-基于PHP的網上購物網站系統設計

畢業設計-基于PHP的網上購物網站系統設計,共45頁,14912字,附完整的程序源代碼。包括前臺,后臺的實現,先運行phpStudyAdmin后打開dzsw/install.php摘要隨著Internet技術的發展,人們的日常生活已經離不開網絡…

com/android/dx/command/main,com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

如果你在開發過程中遇到了上述的Bug,基本上是JDK版本不一致造成的,指的是高版本的JDK編譯的class不能放在低版本的JDK上運行。如果是Version 52,就表示JDK8編譯的class不能運行在JDK7上,所以需要在本地安裝JDK8. 如果是Version 51…

谷歌瀏覽器怎么重發請求_Googel 瀏覽器 模擬發送請求工具--Advanced REST Client

Advanced REST Client是 Chrome 瀏覽器下的一個插件,通過它可以發送 http、https、WebSocket 請求。在 Chrome 商店下搜索 Advanced REST Client,即可找到如果搜索不到的可到CSDN 下載:1.下載插件:Advanced Rest Client2.因為最新…

鴻蒙os吃內存嗎,終于上手機!華為鴻蒙 OS 2.0 系統:128KB 內存就能跑

終于上手機!華為鴻蒙 OS 2.0 系統:128KB 內存就能跑2020-09-11 10:51:480點贊0收藏0評論9月11日消息,華為昨天下午在東莞松山湖舉辦了全球開發者大會,本次大會帶來了全新的 EMUI 11 系統和備受期待的鴻蒙 OS 2.0 操作系統&#xf…

flink 不設置水印_區分理解Flink水印延遲與窗口允許延遲的概念

link 在開窗處理事件時間(Event Time) 數據時,可設置水印延遲以及設置窗口允許延遲(allowedLateness)以保證數據的完整性。這兩者因都是設置延遲時間所以剛接觸時容易混淆。本文接下將展開討論分析“水印延遲”與“窗口允許延遲”概念及區別。水印延遲(WaterMark)(1…

愛特php文件管理器2.8_查找「超級蜘蛛池開發者中心 摳:44564876易」安卓應用 - 豌豆莢...

8.6萬人安裝開發者頭條 - 程序員分享平臺 2015 年獲「最美應用」官方推薦,程序員必裝的應用。 開發者頭條是由一群程序員創建的,我們運營了 developerWorks 的微博、微信,創建了碼農周刊,已覆蓋百萬程序員; 我們更懂程…

談華為鴻蒙內核和操作系統,談華為鴻蒙內核和操作系統

作者 | 陸首群談到華為自研鴻蒙內核和操作系統,從華為透漏出來的信息來看,有點自相矛盾、撲朔迷離!我曾說過:真真假假,虛虛實實!這里有技術原因,也有外部原因。一開始(大概是 2016 年左右)&…

彈跳機器人 桌游_MIT機器人輕松搞定桌游疊疊樂:你能玩過它算我輸 |《科學》子刊...

乾明 發自 凹非寺 量子位 報道 | 公眾號 QbitAI江湖上,一直流傳著一種疊疊樂的試煉。規則很簡單,從下方的積木中,抽一根往上搭。你能往上搭幾層?對MIT團隊研發的機器人來說,玩這個游戲基本上不費吹灰之力。而且&#x…

華為鴻蒙無人駕駛,特斯拉最大的對手竟是華為?Hicar+鴻蒙OS無人駕駛技術不再一家獨大!...

原標題:特斯拉最大的對手竟是華為?Hicar鴻蒙OS無人駕駛技術不再一家獨大!短短幾個月的時間,特斯拉的市值翻了近4倍,對于一個超級企業來說一切都顯得那么不可思議,如果把它單純的看成一家車企,恐…

new_picview_一款漂亮的圖片查看器PictureViewer

前段時間寫了一款查看妹子圖片的客戶端宅男福利妹子客戶端SuperGank,于是后來就把其中的一個圖片查看的功能封裝成了一個library,使用簡單,可以進行多項設置。先來看一眼效果圖吧!下面來看看如何使用它:首先把圖片url的…

鴻蒙系統會不會影響游戲,令人擔心,鴻蒙系統會不會讓人失望?未來難說

如今,一直被炒的沸沸揚揚的鴻蒙系統,終于在2019年8月9日發布了,次日,也就是8月10日,榮耀的智慧屏又帶著鴻蒙系統出現了一次,榮耀智慧屏也成為了首次搭載鴻蒙系統的終端,見證了中國操作系統的歷史…