linux的绝对路径跟相对路径怎么解释

linux的绝对路径跟相对路径怎么解释,第1张

绝对路径:始终从根目录(/)开始,比如:

/home/abhishek/scripts/my_scripts.sh

相对路径:从当前目录开始。比如,如果你在/home目录中,希望访问my_script.sh文件,那么访问的路径应该是:

abhishek/scripts/my_scripts.sh

绝对路径和相对路径的差异

Linux中目录结构其实是一个树,从根(/)开始,然后产生分支,假设我们使用ls命令查看my_script.sh的文件信息,那么使用绝对路径

ls -l /home/abhishek/scripts/my_script.sh

然后,相对路径:

ls -l scripts/my_script.sh

那么,以上两种方式,除了文件路径不一样以外,其他的完全一样。

需要注意的是,在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。

有两种特殊的相对路径:

.(一个点):表示路径中的当前路径

..(两个点):表示父目录,即上一级目录

首先你没有说清楚路径是指目录名还是文件名,还有路径是绝对路径还是相对路径,那么我只能用比较通用的方式了

假设你的程序是 myprogram.exe <路径名>

首先根据路径名是不是用“.”或者".."开始的,如果是,那么就是相对路径,首先要获得当前工作目录(windows下用GetCurrentDirectory,unix或者linux下用getcwd),然后将当前工作目录和相对路径名组合成绝对路径。

如果路径名是文件名,在windows下需要查找‘\’字符,替换成"\\",然后才能用fopen打开,如果是unix、linux之类的,可以直接用argv[1]

如果路径名是目录名,那么有两种方式,一种是进strcat将目录名加分隔符(linu下是/,windows下是\\)加文件名,形成文件的绝对路径,然后用fopen(文件据对路径,打开方式)打开;另外一种是切换当前工作目录(windows下用SetCurrentDirectory函数,linux、unix下用chdir),然后fopen(文件名,打开方式)打开


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8434003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存