我是在linux下編寫c的新手,所以這可能是個愚蠢的問題,但我有使用fopen的問題。當我遇到我只是這真的是簡單的代碼試了一下這個問題:打開文件用fopen讀取的問題
#include <stdio.h>
#include<stdlib.h>
int main()
{
FILE *test;
if(fopen("test.txt","r") == NULL)
printf("didnt open");
else
printf("opened!");
fclose(test);
}
test.txt的是在同一文件夾中的代碼和a.out的。當我調試a.out時,我得到:
Breakpoint 1, main() at testit.c:14
14 if(fopen("test.txt","r") == NULL)
(gdb) s
_IO_new_fopen (filename=0x400696 "test.txt", mode=0x400694 "r") at iofopen.c:103
103 iofopen.c: No such file or directory.
(gdb) s
__fopen_internal (filename=0x400696 "test.txt", mode=0x400694 "r", is32=1) at iofopen.c:65
65 in iofopen.c
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
_IO_new_fclose (fp=0x0) at iofclose.c:54
54 iofclose.c: No such file or directory.
我試着改變路徑:if(fopen("/home/h1657/Work/test/test.txt","r") == NULL)
。有同樣的效果。
對不起,如果這是基本問題,但我找不到任何解決方案。
'FILE *測試;',你再使用爲什麼'FCLOSE(測試);'?它應該是'if((test = fopen(「test.txt」,「r」))== NULL)'並且最重要的是:test.txt存在於執行程序的當前目錄中? – 2014-08-29 08:55:04
是'testtest.txt'完整路徑在您的代碼或打字錯誤在這裏? – kfmfe04 2014-08-29 08:57:14