小智 4
如果程序本身不这样做,那么它就是一个糟糕的程序。糟糕的程序应该用一些 Bash 脚本来包装:
#!/bin/bash
set -e
cd $(readlink -f $(dirname $0))
exec ./myprog $*
Run Code Online (Sandbox Code Playgroud)
上面的脚本确定它所在的目录,然后将当前工作目录更改为该目录并从那里运行程序myprog,透明地传递所有参数。因此,您必须将此脚本放入您的程序所在的同一目录中并运行它而不是您的程序。
假设您有权访问源代码并且可以修复程序,然后使用proc fs确定程序的位置,然后使用绝对路径。
例如,/proc/self/exe始终是指向当前进程的二进制文件的符号链接。使用readlink读取它的值,然后剪切可执行文件名称,你就得到了目录。
| 归档时间: |
|
| 查看次数: |
13927 次 |
| 最近记录: |