跨平台获取可执行文件的目录

在写跨平台的项目时,获取可执行文件的目录是各平台特定的接口,也就是说各平台有不同的方式。


  • Mac OS X: _NSGetExecutablePath() (man 3 dyld)
  • Linux: readlink /proc/self/exe
  • Solaris: getexecname()
  • FreeBSD: sysctl CTL_KERN KERN_PROC KERN_PROC_PATHNAME -1
  • FreeBSD if it has procfs: readlink /proc/curproc/file (FreeBSD doesn't have procfs by default)
  • NetBSD: readlink /proc/curproc/exe
  • DragonFly BSD: readlink /proc/curproc/file
  • Windows: GetModuleFileName() with hModule = NULL


posted @ 2017-10-22 15:50  枫竹梦  阅读(410)  评论(0编辑  收藏  举报