第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

下面是我的調(diào)試結(jié)果,之前一直沒有錯(cuò),后面有問題,為什么?

下面是我的調(diào)試結(jié)果,之前一直沒有錯(cuò),后面有問題,為什么?

C
函數(shù)式編程 2022-07-14 18:11:02
,大概是調(diào)用到了4,5次的時(shí)候把,這是子函數(shù)內(nèi)部的寫函數(shù),我往文件fp里寫,已經(jīng)寫完了,打算去關(guān)閉的時(shí)候出現(xiàn)的。而且fp的值是有的,很奇怪,望高手指點(diǎn)75 fclose(fp);(gdb) p fp$21 = (FILE *) 0x603fd0(gdb) p fclose(fp)Program received signal SIGSEGV, Segmentation fault.0x0000003a8b25ff39 in fclose@@GLIBC_2.2.5 () from /lib64/libc.so.6The program being debugged was signaled while in a function called from GDB.GDB remains in the frame where the signal was received.To change this behavior use "set unwindonsignal on".Evaluation of the expression containing the function(fclose@plt) will be abandoned.When the function is done executing, GDB will silently stop.
查看完整描述

2 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

(gdb) p fp
$21 = (FILE *) 0x603fd0

首先.p fp打印的是文件指針.也就是fp的指針地址.而是文件指針的內(nèi)容...
你應(yīng)該使用 p *fp查看_fileno
如果不為-1.則文件是被打開的.

其實(shí)在fp前做個(gè)檢查就好了 ...
if(fp) fclose(fp);

還有一種辦法.如果你是LINUX的話.
在調(diào)試的時(shí)候.在fclose之前打上斷點(diǎn).運(yùn)行到斷點(diǎn)的時(shí)候ps看下程序的PID.去proc里看下文件是否已經(jīng)被關(guān)閉了...
具體路徑在/proc/PID/fd
ls -l一下.就可以看到打開了哪些文件.以及文件描述符.如果沒有fopen打開的文件.就表示已經(jīng)被關(guān)閉過了...

查看完整回答
反對 回復(fù) 2022-07-18
?
拉丁的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

SIGSEGV 信號表示你引用了一個(gè)無效的,或者非法的內(nèi)存區(qū)域;
出現(xiàn)這個(gè)錯(cuò)誤,肯定是你的 fp 指針無效,但不一定非法,所以 fclose 報(bào)錯(cuò);
你要保證你的文件打開成功,并且 fp 持有一個(gè)合法的文件指針,才能用 fclose 關(guān)閉文件;

查看完整回答
反對 回復(fù) 2022-07-18
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號