看到我制作了一个只使用
创建一个新文件的程序fopen()
现在我想在ma程序中打印该文件的完整路径。
如何通过c编程在linux
中实现这一点?
答案 0 :(得分:2)
getcwd
获得的工作目录路径 - 当然,除非用于创建文件的路径是绝对路径。
或者,您可以使用realpath。
答案 1 :(得分:0)
你已经有了一个文件名,所以问题是如何检测它是否已经是绝对路径或相对路径,并将后者转变为绝对路径。
如果它已经是绝对路径,那么该字符串将以/
开头。如果它不是绝对路径,那么您知道它与您当前的工作目录相关。鉴于此,您可以确定进程的当前工作目录,并将文件路径附加到该目录。
如果您还想将其解析为真实路径(解析符号链接,删除.
和..
部分),您可以使用realpath函数。
答案 2 :(得分:-3)
在 main()中,您应该获得可执行文件的完整路径 argv [0] 。您的文件是在那里创建的。
此外,AFAIK,fopen原型
FILE * fopen(const char *restrict filename, const char *restrict mode);
所以很简单
fopen()
不起作用(如果我们谈论标准C)。