C无法从具有fgets的文件中读取

时间:2016-05-07 16:04:26

标签: c file fgets

我想从文件second读取到C的内存中。

我将myItemMap.emplace(std::piecewise_construct, std::forward_as_tuple(correspondingKey), std::forward_as_tuple(3, 3.14, "hello")); 个文件与源文件放在同一个位置,因此.txttxt

当我在eclipse中运行代码时(在macbook上),它总是打印fileName,而在Unix中,我得到small_addressbook.txt

我尝试在Unix中运行File not found并收到此错误报告:

segmentation fault

2 个答案:

答案 0 :(得分:0)

调用函数时使用绝对文件路径(例如:“C:/MyFolder/MyFile.txt”)

答案 1 :(得分:-2)

UNIX gdb命令非常有助于检测代码的任何问题。

例如,如果我们使用以下命令编译程序:

gcc -ansi -Wall -pedantic test1.c test2.c ... -o test

并获得segmentation fault

然后我们使用gdb命令来查看问题:

gdb test gdb run

将返回错误/问题的报告。然后我们可以使用bt命令在程序中进行回溯。

在这篇特定的帖子中,正如我们所见:

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可能与为该值分配内存的其他一些方法冲突。

有足够的信息来解决问题。