快速提问 这段代码给我带来了细分错误
f = fopen("~/proj/viagens.txt", "r");
但是这个没有
f = fopen("viagens.txt", "r");
那是为什么?
答案 0 :(得分:3)
~
是一种表示法,它由您的Shell(例如Bash)扩展到您的主目录中,因此,如果您调用vim ~/proj/viagens.txt
之类的程序,则Shell会将参数扩展为{{1} } {em>之前程序/home/ventura/proj/viagens.txt
曾经看到它。 vim
不能理解~
,因此需要绝对路径或相对于当前工作目录的路径。
(如@Osiris和@AndrewHenle在其注释中指出的,fopen
不会进行段错误,但是当找不到文件时它将返回null,这将在您下一行时导致段错误。尝试使用fopen
作为文件描述符。)