当前位置: 首页 > 面试题库 >

Linux上正在运行的程序的目录?

益何平
2023-03-14
问题内容

嘿,我一直在写一个程序(一种类似于电子书的查看类东西),它从可执行文件所在的文件夹中的一个文件夹中加载文本文件。这给我带来了一个问题,因为例如,如果我使用“
./folder/folder/program”命令从另一个目录运行该程序,由于工作目录不正确,我的程序将找不到文本。我没有绝对目录,因为我希望该程序具有可移植性。有什么方法可以获取可执行文件正在运行的确切目录,即使它是从其他目录运行的也是如此。我听说可以将argc
[0]和getcwd()组合在一起,但是当目录中有空格时,argc被截断了(我想呢?),所以我想避免这种情况。

我预先在Linux上使用g ++,Thanx


问题答案:

编辑-不要使用getcwd(),它只是用户所在的位置,而不是可执行文件所在的位置。

有关详细信息,请参见此处。

在Linux上,/ proc / / exe或/ proc / self /
exe应该是指向可执行文件的符号链接。与其他人一样,我认为更重要的问题是“为什么需要这个?”
使用可执行路径查找辅助文件并不是真正的UNIX形式。而是使用环境变量或默认位置,或遵循其他约定之一来查找辅助文件的位置(即〜/。 rc)。



 类似资料:
  • 问题内容: 我需要一个C / C ++ API,该API允许我列出Linux系统上正在运行的进程,并列出每个进程已打开的文件。 我 不 希望最终直接读取的/ proc /文件系统。 有人能想到一种方法吗? 问题答案: http://procps.sourceforge.net/ http://procps.cvs.sourceforge.net/viewvc/procps/procps/proc/

  • 部署0.9.5版本的storm集群 streamparse最新稳定版是基于0.9.5版本的storm的,所以我们需要把storm集群的版本回退到0.9.5,方法如下: wget http://apache.fayea.com/storm/apache-storm-0.9.5/apache-storm-0.9.5.tar.gz 解压后修改conf/storm.yaml文件,添加如下配置项: st

  • 问题内容: 我的目标 我试图做一个Java程序中,用户可以选择任何或从他们的计算机文件。然后,我的程序将弹出一个带有a 的控制台,以捕获用户程序中任何控制台输出。当用户程序关闭(调用)时,我的程序不得与其一起关闭。我的程序可能还具有诸如立即停止用户程序的按钮之类的功能,以及其他IDE可能会停止的功能。我的程序不需要编译Java代码,只需运行和文件即可。 我的经验 我对该程序做了一个小型测试版本,其

  • 问题内容: 我有一个Swing窗口,其中包含一个按钮,一个文本框和一个命名为flag的窗口。根据我单击按钮后的输入,标签应从标志更改为某个值。 如何在同一个窗口中实现这一目标? 问题答案:

  • 问题内容: 在Linux中,我想运行一个程序,但只能运行有限的时间,例如1秒。如果程序超出此运行时间,我想终止进程并显示错误消息。 问题答案: StackOverflow不允许我删除答案,因为它已被接受。由于它在列表顶部,下面有一个更好的解决方案,因此它获得了否决票。如果您使用的是GNU系统,请按照@wRAR的建议使用代替。因此,希望您停止投票,这是它的工作方式: 您可以使用,,或为秒(如果省略默

  • 问题内容: 我将创建一个程序(脚本),该程序在运行时会启动操作,因此我不在此程序中使用路由 我正在使用NestJS框架(要求)。 实际上,我正在尝试在文件中编写代码,并使用方法导入服务。 我的服务 我将使用服务来处理我的操作,所以我会使用DI,该DI在非类文件中不起作用。 我会知道如何以适当的方式在初始化时间内运行我的操作 问题答案: 有两种方法可以做到这一点: A)生命周期事件 使用生命周期事件