Linux读取文件路径问题

问题是这样的:

首先终端上有当前路径显示,我有个可执行程序代码是这样的:

FILE fp  = fopen(filename, "rb");

if(fp == NULL)     printf("cannot open\n");

编译出来的可执行程序(elf格式)比如在/home/username下面。filename中的这个文件也是在username下。

我偶然这样运行:

终端当前路径是:/home

./username/my_elf

那么就会导致文件无法打开,其实是文件路径错误了。因为终端的当前路径不是username 下。

必须把终端的当前路径cd 到  username 下再./my_elf这样文件打开才正确。

时间: 2024-10-29 23:33:03

Linux读取文件路径问题的相关文章

Linux库文件路径的添加

linux操作系统中,linux库文件路径还是比较常用的,于是我研究了一下linux库文件路径,在这里拿出来和大家分享一下,希望对大家有用. 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用.对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中.设置库文件的搜索路径有下列两种方式

封装读取文件路径的类File.h+File.m

1 #import <Foundation/Foundation.h> 2 3 #define FILE_PATH(filePath) [File path:(filePath)] 4 #define ROOT_PATH [File rootPath] 5 #define BUNDLE_PATH(fileName) [File bundleSource:(fileName)] 6 #define CREATE_FOLDER(folderPath) [File createFolder:(fol

Java递归读取文件路径下所有文件名称并保存为Txt文档

本文用递归的方法实现读取一个路径下面的所有文件并将文件名称保存到Txt文件中,亲测可用. 递归读取文件路径下的所有文件: /** * 递归读取文件路径下的所有文件 * * @param path * @param fileNameList * @return */ public static ArrayList<String> readFiles1(String path, ArrayList<String> fileNameList) { File file = new File

linux 读取文件

linux读取文件是经常要用到的操作,以下示例(说明看注释): #读取文件snlist.txt中的每一行内容赋给sn变量 while read sn do echo ">>>>>>>sn is $sn" # 判断是否是文件 if [ ! -d "$sn" ];then echo $sn "not existed" else # 对sn进行"/"拆分并获取最后一个结果,如lib/aa结果

python里读取文件路径上一级路径及文件的方法

这个有时隔时间久了自己都记不清了具体的语句,现在总结一下. 一.获取当前文件路径 二.获取上一级文件路径 这里可以想象出获取与自己同级文件的路径,这么写: 即先获取上级目录,然后通过join函数来把同级的目录test拼进来. 三.获取当前路径下的所有文件名 得到的是一个列表的数据,是当前目录下的所有文件夹及文件的名称. 四.检查是否是文件及文件是否存在 先介绍这么多,比较简单总的是为了可以加深自己的记忆.还有删除目录.获取当前环境.分离文件.分离扩展名等,这里列举的是比较常用的. 原文地址:ht

java 读取文件路径空格和中文的处理

应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案:1, TestURL().class.getResource("").getPath()或TestURL().class.getResource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应用. 原因是URL对空格,特殊字符(%,#,[]等)和中文进行了编码处理. 例如:空格变为%20. 有解决方

linux读取文件的流程

最近发现一个好玩的东西,就是mysql的 我删除了一个idb文件通过rm,发现我查表的时候数据还是存在的,今天就整理了一下这个东西,inode文件描述 通过查找资料发现:文件是这么被访问的,物理的结构就是/home/stu01 /home/stu02 系统怎么记得呢 首先会产生一个inode描述符,然后跟硬盘在一个地方,每次系统访问的时候即我们使用cat查看的时候都会读取这个对应的inode描述符,然后访问文件. 好了下面就逐个说明:文件系统将硬盘划分为块,编号从0开始到整个磁盘的最大块数,0块

(转)C#读取文件路径

1 //获取包含清单的已加载文件的路径或 UNC 位置. 2 public static string sApplicationPath = Assembly.GetExecutingAssembly ( ).Location; 3 4 //result: X:\xxx\xxx\xxx.dll (.dll文件所在的目录+.dll文件名) 5 6 7 8 //获取当前进程的完整路径,包含文件名(进程名). 9 10 string str = this.GetType ( ).Assembly.Lo

PHP 文件包含总结 include require 命名空间 autoload spl_autoload_register 读取文件路径

总结: 1. include或require包含其他文件 使用./或者 ../,这里的当前路径和上一层路径,取决于运行脚本的路径,会存在如下问题. 在写PHP程序时,经常要用到include或require包含其他文件,但是各文件里包含的文件多了之后,就会产生路径问题. 如下目录: <web>(网站根目录)  ├<A>文件夹  │ │  │ └1.php  ├<B>文件夹  │ │  │ └2.php  └index.php 现在根目录下的index.php要包含A文件