a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

詳解C語言中的fopen()函數和fdopen()函數

2020-01-26 14:55:48
字體:
來源:轉載
供稿:網友

C語言fopen()函數:打開一個文件并返回文件指針
頭文件:

#include <stdio.h>

fopen()是一個常用的函數,用來以指定的方式打開文件,其原型為:
 

  FILE * fopen(const char * path, const char * mode);

【參數】path為包含了路徑的文件名,mode為文件打開方式。

mode有以下幾種方式:

在POSIX 系統,包含Linux 下都會忽略 b 字符。由fopen()所建立的新文件會具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權限,此文件權限也會參考umask 值。

二進制和文本模式的區別:
在windows系統中,文本模式下,文件以"/r/n"代表換行。若以文本模式打開文件,并用fputs等函數寫入換行符"/n"時,函數會自動在"/n"前面加上"/r"。即實際寫入文件的是"/r/n" 。
在類Unix/Linux系統中文本模式下,文件以"/n"代表換行。所以Linux系統中在文本模式和二進制模式下并無區別。

更多信息請查看:C語言fopen()打開文本文件與二進制文件的區別

有些C編譯系統可能不完全提供所有這些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統的規定。

【返回值】文件順利打開后,指向該流的文件指針就會被返回。若果文件打開失敗則返回NULL,并把錯誤代碼存在errno 中。

注意:一般而言,開文件后會作一些文件讀取或寫入的動作,若開文件失敗,接下來的讀寫動作也無法順利進行,所以在fopen()后請作錯誤判斷及處理。

文件操作完成后,需要將文件關閉,一定要注意,否則會造成文件所占用內存泄露和在下次訪問文件時出現問題。

文件關閉后,需要將文件指針指向空,這樣做會防止出現游離指針,而對整個工程造成不必要的麻煩,如fp = NULL。

【實例】打開一個文件然后關閉該文件。

#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){  FILE* fstream;  char msg[100] = "Hello!I have read this file.";  fstream=fopen("test.txt","at+");  if(fstream==NULL)  {    printf("open file test.txt failed!/n");    exit(1);  }  else  {    printf("open file test.txt succeed!/n");  }  fclose(fstream);  return 0;}

C語言fdopen()函數:將文件描述詞轉為文件指針
頭文件:

 #include <stdio.h>

定義函數:

FILE * fdopen(int fildes, const char * mode);

函數說明:fdopen()會將參數fildes 的文件描述詞, 轉換為對應的文件指針后返回.

參數mode 字符串則代表著文件指針的流形態, 此形態必須和原先文件描述詞讀寫模式相同. 關于mode 字符串格式請參考fopen().

返回值:轉換成功時返回指向該流的文件指針. 失敗則返回NULL, 并把錯誤代碼存在errno 中.

范例

#include <stdio.h>main(){  FILE * fp = fdopen(0, "w+");  fprintf(fp, "%s/n", "hello!");  fclose(fp);}

執行

hello!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产免费一级片 | 9191视频| 欧美日韩精品一区二区在线播放 | 国产成人免费在线视频 | 91视频免费污 | 日本一区二区高清 | 国产中文字幕一区 | 国产日韩精品一区二区在线观看播放 | 日韩成人精品视频 | 精品国产乱码久久久久夜 | 精品99在线| 午夜午夜精品一区二区三区文 | 成人黄色在线观看 | 草草影院在线观看 | 午夜私人影院 | 欧美色图另类 | 欧美精品在线看 | 欧美wwwww| 91精品国产高清一区二区三区 | 精品久久久久久久久久久久久久 | 日韩性视频| 在线免费观看羞羞视频 | 日韩精品久久理论片 | av在线不卡播放 | 日韩久久一区 | 成人午夜精品一区二区三区 | 性 毛片| 美女久久精品 | 国产精品久久一区 | 午夜高清视频在线观看 | 亚洲免费视频一区 | 男女精品网站 | 五月婷婷在线播放 | 天天干天天谢 | 欧美性猛交xxxx免费看漫画 | 久久久久国产一区二区三区四区 | 99精品视频一区 | 日韩大片免费看 | av免费网站 | 日韩中文字幕网 | 日韩成人免费视频 |