快速提问
这段代码给我细分错误

f = fopen("~/proj/viagens.txt", "r");


但是这个没有

f = fopen("viagens.txt", "r");


为什么?

最佳答案

~是由shell(例如Bash)扩展到主目录的一种表示法,因此,如果您调用vim ~/proj/viagens.txt之类的程序,则shell会在程序/home/ventura/proj/viagens.txt看到之前将参数扩展为vim。它。 ~无法理解fopen,这需要绝对路径或相对于当前工作目录的路径。

(正如@Osiris和@AndrewHenle在其注释中指出的那样,fopen不会出现段错误,但是当找不到文件时它将返回null,这将在您尝试使用作为文件描述符。)

关于c - 写入文件的完整位置时出现段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53199124/

10-12 16:14