易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下GetModuleFileName的四种写法

Linux下GetModuleFileName的四种写法
  问题的起因是要把一个东东从Windows移植到基于Linux的嵌入式系统上。移植过程中,遇到了GetModuleFileName的问
题。为了解决这个问题,花了不少的时间,也走了不少弯路。下面是整理的结果。
  首先摘录一段文字,来源《UNIX Programming FAQ 中文版》
 
1.14. 我怎样找到进程的相应可执行文件?
  这个问题可以作为'常见未回答问题
'('Frequently Unanswered Questions')的一个好候选,因为事实上提出这个问题经常意味着程序的设计有缺陷。:)
 
 你能作的'最佳猜测'('best
guess')是通过审视'argv[0]'的值而获得。如果它包括一个'/',那么它可能是可执行程序的绝对或相对(对于在程序开始时的当前目录而言)
路径。如果不包括,那么你可以仿效shell对于'PATH'变量的查询来查找这个程序。但是,不能保证成功,因为有可能执行程序时'argv[0]'是
一些任意值,也不排除这个可执行文件在执行后可能已经被更名或删除的情况。
  如果所有你想做的只是能打印一个和错误消息一起出现的合适的名
字,那么最好的方法在'main()'函数中将'argv[0]'的值保存在全局变量中以供整个程序使用。虽然没有保证说'argv[0]'的值总是有意
义,但在大多数情况下它是最好的选择。
  人们询问这个问题的最普通原因是意图定位他们程序的配置文件。这被认为是不好的形式;包含可执行文件
的目录应当*只*包含可执行文件,而且基于管理的要求经常试图将配置文件放置在和可执行文件不同的文件系统。
  试图做这个的一个比较不普通但
更正规的理由是允许程序调用'exec()'执行它自己;这是一种用来完全重新初始化进程(比如被用于一些'sendmail'的版本)的办法(比如当一
个守护程序捕获一个'SIGHUP'信号)。
  完全同意上面的观点!所以并不建议在Linux下去实现GetModuleFileName,不过出于技术的角度,讨论一下这个问题也是可以
的。
 
  好,下面说说茴字的四种写法。哦,不,是GetModuleFileName的四种写法。
GetModuleFileName的四种写法

法一:从PATH入手
说明:上文提供的思路
int GetModuleFileName1( char*
sModuleName, char* sFileName, int nSize)
{
 int ret = -1;
 if(
strchr( sModuleName,'/' ) != NULL )
  strcpy( sFileName, sModuleName
);
 else
 {
  char* sPath = getenv("PATH");
 &nb


相关文档:

linux下模拟键盘的几种方法

1、使用GTK中的GdkEvent
    GdkEvent *event;
    event = gdk_event_new (GDK_KEY_PRESS);              //按键按下
    event->key.send_event = TRUE;
    event->key.keyva ......

linux目录结构


linux目录架构
                 转载于:http://www.91linux.com/html/article/go/20100408/19124_2.html
/ 根目录
/bin
常用的命令 binary file 的目录
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot ......

linux 查看 磁盘空间 以兆查看

Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
作者:北南南北
来自:LinuxSir.Org
提要:Linux
磁盘分区表、文件系统的查看、统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作;但在本文,我们只讲磁盘分区
的查看,以及分区的使用情况的查看;本文只是给 ......

linux移植开发简单步骤

http://blog.csdn.net/linucos/archive/2010/01/22/5223615.aspx
Linux
移植开发
准备工作:
准备
交叉编译工具链:这里我们选择DENX软件工程提供的ELDK交叉编译环境,参考地址:http://ftp.denx.de/pub/eldk/4.2/

我们使用其中的一套工具。准备工作步骤如下:
1. 建立工作文件夹NewMsg2410,并建立子目录sources ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号