今天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...