/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(文件名,打开方式)打开
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)