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

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

 

转载时请注明出处和作者联系方式:http://blog.csdn.net/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~~

 
原文地址:https://www.cnblogs.com/zhangyunlin/p/6167735.html