開發平台(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;
再麻煩高手解答了,感謝