[問題] 在sub block做fopen並回傳問題
開發平台(Platform): (Ex: Win10, Linux, ...)
CentOS
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
最近寫程式時,碰到在sub block做fopen,然後找到指定關鍵字後回傳
我是這樣寫的
#include<stdlib.h>
#include<stdio.h>
int main(){
int status=-1;
status=sub_test("test");
printf("Status is %d\n",status);
return 0;
}
int sub_test(char *filename){
fid_rd=fopen(filename,"r");
while(fscanf(fid_rd,"%s",&tmp)!=NULL){
if(strcmp("PASS",tmp)==0)
return 1;
}
fclose(fid_rd);
return 0;
}
這邊這樣寫,在編譯不會有問題,但是最近總覺得怪,檔案還沒被關閉就return回主程式
這樣真的不會造成記憶體的浪費嗎?有沒有人可以教我一下該怎麼去觀察記憶體使用狀況?
我在想是不是改成以下這種寫法比較好?
int status=0;
while(fscanf(fid_rd,"%s",&tmp)!=NULL){
if(strcmp("PASS",tmp)==0){
status=1;
break;
}
}
fclose(fid_rd);
return status;
再麻煩高手解答了,感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 150.116.208.71 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1701790992.A.67B.html
推
12/05 23:52,
11月前
, 1F
12/05 23:52, 1F
推
12/06 00:38,
11月前
, 2F
12/06 00:38, 2F
→
12/06 09:13,
11月前
, 3F
12/06 09:13, 3F
→
12/06 09:13,
11月前
, 4F
12/06 09:13, 4F
推
12/06 10:12,
11月前
, 5F
12/06 10:12, 5F
→
12/06 10:12,
11月前
, 6F
12/06 10:12, 6F
→
12/06 21:35,
11月前
, 7F
12/06 21:35, 7F
推
12/06 21:39,
11月前
, 8F
12/06 21:39, 8F
推
12/07 22:57,
11月前
, 9F
12/07 22:57, 9F
推
12/08 13:21,
11月前
, 10F
12/08 13:21, 10F
推
12/09 15:55,
11月前
, 11F
12/09 15:55, 11F
→
12/09 15:56,
11月前
, 12F
12/09 15:56, 12F
推
12/09 23:31,
11月前
, 13F
12/09 23:31, 13F
→
12/09 23:31,
11月前
, 14F
12/09 23:31, 14F
推
12/10 10:41,
11月前
, 15F
12/10 10:41, 15F
→
12/25 22:50,
11月前
, 16F
12/25 22:50, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章