C无法使用fgets读取文件
C unable to read from a file with fgets
我想从文件 .txt
读入 C 中的内存。
我把 txt
个文件和源文件放在同一个地方,所以 fileName
给出 small_addressbook.txt
当我 运行 在 eclipse 中(在 macbook 上)编写代码时,它总是打印 File not found
,而在 Unix 中,我得到 segmentation fault
.
我在 Unix 中尝试 运行ning gdb
并收到此错误报告:
Program received signal SIGSEGV, Segmentation fault.
__strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:666
666 mov %rcx, (%rdi)
调用函数时使用绝对文件路径(例如:"C:/MyFolder/MyFile.txt")
UNIX gdb
命令对于检测代码的任何问题非常有帮助。
例如,如果我们用下面的命令编译程序:
gcc -ansi -Wall -pedantic test1.c test2.c ... -o test
得到了 segmentation fault
.
然后我们使用gdb
命令查看问题:
gdb test
gdb run
errors/problems 的报告将 return。然后我们就可以在程序中使用bt
命令进行回溯
在这个具体的post中,我们看到:
Program received signal SIGSEGV, Segmentation fault.
__strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:666
666 mov %rcx, (%rdi)
SIGSEGV
表示分割信号,特别是Segmentation fault
.
然后__strncpy__se2__
表示问题是关于一些值传递给方法strncpy
,sse2
表示段2,如源文件的顺序.c
那个值正在传递给。
最后,unaligned
意味着此方法 strncpy
可能与其他一些为该值分配内存的方法冲突。
足够的信息来解决问题。
我想从文件 .txt
读入 C 中的内存。
我把 txt
个文件和源文件放在同一个地方,所以 fileName
给出 small_addressbook.txt
当我 运行 在 eclipse 中(在 macbook 上)编写代码时,它总是打印 File not found
,而在 Unix 中,我得到 segmentation fault
.
我在 Unix 中尝试 运行ning gdb
并收到此错误报告:
Program received signal SIGSEGV, Segmentation fault.
__strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:666
666 mov %rcx, (%rdi)
调用函数时使用绝对文件路径(例如:"C:/MyFolder/MyFile.txt")
UNIX gdb
命令对于检测代码的任何问题非常有帮助。
例如,如果我们用下面的命令编译程序:
gcc -ansi -Wall -pedantic test1.c test2.c ... -o test
得到了 segmentation fault
.
然后我们使用gdb
命令查看问题:
gdb test
gdb run
errors/problems 的报告将 return。然后我们就可以在程序中使用bt
命令进行回溯
在这个具体的post中,我们看到:
Program received signal SIGSEGV, Segmentation fault.
__strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:666
666 mov %rcx, (%rdi)
SIGSEGV
表示分割信号,特别是Segmentation fault
.
然后__strncpy__se2__
表示问题是关于一些值传递给方法strncpy
,sse2
表示段2,如源文件的顺序.c
那个值正在传递给。
最后,unaligned
意味着此方法 strncpy
可能与其他一些为该值分配内存的方法冲突。
足够的信息来解决问题。