我想从文件second
读取到C的内存中。
我将myItemMap.emplace(std::piecewise_construct,
std::forward_as_tuple(correspondingKey),
std::forward_as_tuple(3, 3.14, "hello"));
个文件与源文件放在同一个位置,因此.txt
为txt
当我在eclipse中运行代码时(在macbook上),它总是打印fileName
,而在Unix中,我得到small_addressbook.txt
。
我尝试在Unix中运行File not found
并收到此错误报告:
segmentation fault
答案 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
可能与为该值分配内存的其他一些方法冲突。
有足够的信息来解决问题。