fprintf函式導致程序掛死問題分析

2021-09-12 05:23:14 字數 521 閱讀 6796

今天tuxedo的某個服務一呼叫就掛死,不報錯,沒coredump,經過打日誌定位,有問題的**是這一行:

fprintf(m_fp,"%s%s",strtime.c_str(),strfmt.c_str());

m_fp是file*,後面兩個變數都是string,並且都能列印出來,沒有問題。

dayong一口咬定就是fopen的問題。於是檢視fopen的**:

m_fp = fopen(m_strdirandname.c_str(), "a+");

但是dayong說不出fopen是什麼問題。

於是把檔名列印出來一看,恍然大悟,fopen這個函式,會自動建立檔案,但是不會自動建立路徑

ps:沒core是因為把core檔案關了不生成。fopen這個函式一般而言要要做成功失敗判斷的,**裡沒判斷成功就直接fprintf不健壯。

示例**:

int main()

fclose(pfile);

return 0;

}

fprintf 函式用法

fprintf 函式與fscanf 函式的作用於prinf 和scanf 的作用類似,都是格式化讀寫函式。只有一點不同 fprintf和fscanf函式的讀寫物件不是終端而是磁碟檔案。他們的一般呼叫方式為 fprintf 檔案指標,格式字串,輸出列表 fscanf 檔案指標,格式字串,輸入列表 fp...

fprintf()函式的使用

fprintf 函式主要用於格式化資訊輸出到指定的檔案流中 返回值 成功則返回輸出的位元組數,失敗返回eof include int fprintf file stream,const char format,fprintf 函式根據指定的format 格式 傳送資訊 引數 到由stream 流 指...

函式 fprintf 使用說明

描述 c c 中乙個格式化寫 庫函式 功能 傳送格式化輸出到乙個流 檔案中與印表機輸出 標頭檔案 include 函式原型 int fprintf file stream,const char format,argument 用法 根據指定的格式 format字串 來轉換並格式化資料 argumen...