XChinux's Home

过往资料可到百度空间http://hi.baidu.com/xchinux

http://qtcn.org/bbs/u/2  [收藏] [复制]

XChinux

爱Qt,爱N9,qtcn.org

  • 632

    关注

  • 2178

    粉丝

  • 6402

    访客

  • 等级:光明使者
  • 身份:总版主
  • 总积分:11224
  • 男,1979-01-01
  • 山西

最后登录:2024-01-27

更多资料

日志

在Linux下获取当前运行程序可执行文件全路径(不使用real_path()函数)

2011-06-12 12:44

2009-04-05  17:03
linux下的real_path()函数在Mandriva 2009中出现了buffer overflow的错误,这可能是它的一个BUG,现在通过在启动脚本(.sh)中切换到可执行文件所在的目录的方式解决获取可执行文件路径的问题:

程序:
int main(int argc, char **argv)
{
      .................
      boost::filesystem::path appPath;
#ifdef _WIN32
     appPath = boost::filesystem::complete(argv[0]);
#else
     appPath = boost::filesystem::current_path() / "MyExeFileName";
#endif
     ..............
}

启动脚本:
#!/bin/sh
exedir=`dirname $0`
LD_LIBRARY_PATH=$exedir/../lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
cd $exedir
./MyExeFileName $1
分类:编程技术|回复:0|浏览:2595|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:05-18 00:24
©2005-2016 QTCN开发网 版权所有 Gzip disabled