创建进程注意事项等几则笔记

本文介绍了在Linux环境下创建进程时应注意的事项,包括避免文件描述符的不当继承及使用kill而非exit结束子进程的原因。此外,还提供了两种查看ARM平台可执行文件依赖关系的方法。

创建进程注意事项等几则笔记

转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd

作者联系方式:李先静<xianjimli at hotmail dot com>

更新时间:2007-4-13

1. Favorites的图标。

IE的收藏夹中,大部分收藏的图标都是IE默认的,但像googlesina等网站都使用了自己的图标。我发现minimo也支持这个功能,但不知道原因,今天在网上查了一下,原来只要在网站的根目录下放一个favicon.ico文件就行了。

2. 创建进程时的注意事项。

linux下的C程序里,运行一个外部程序有好几种方式:popensystemfork+execxx。在使用fork+execxx时,要注意:

l 最好不要让子进程继承除标准输入/输出/错误外的文件描述符。这可以在execxx前执行下列代码:

maxopen = sysconf (_SC_OPEN_MAX);

for (i = 3; i < maxopen; i++)

fcntl (i, F_SETFD, FD_CLOEXEC);

l 记得检查execxx的返回值,如果执行失败,应该结束子进程,否则可能引发严重错误。如:

if(execl (...) < 0)

{

kill(getpid(), SIGKILL);

}

最好用kill而不是用exit结束子进程,因为exit会执行atexit安装的函数,这在有时是不期望的,特别是对于GUI应用程序来说更是如此。

3. 查看ARM版可执行文件的依赖关系。

ARM版的工具链往往没有与PC对应的ldd命令,查看可执行文件所依赖的动态库只能使用其它方法:

l 方法一:运行应用程序,查看proc下的信息。

cat /proc/pid/maps pid换成真正的pid

l 方法二:使用elf loader查看。

/lib/ld-linux.so.2 –list prog/sharelib (prog/sharelib换成真正的可执行文件/动态库)

~~end~~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值