Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析



Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析 http://blog.csdn.net/luoshengyang/article/details/6629298

fcntl(fd, F_SETFD, FD_CLOEXEC)

close on exec, not on-fork, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用

int execl(const char *path, const char *arg, ...);

是系统提供的接口函数

execlexec函数族中的一员

exec族函数的功能是加载一个新的程序替换掉当前的进程

它可以调用一个外部程序到当前的进程空间里

但不会产生一个新的进程(它只是将当前进程的映像替换成新加载的程序的映像)

fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
    1)在父进程中,fork返回新创建子进程的进程ID
    2)在子进程中,fork返回0
    3)如果出现错误,fork返回一个负值;

 

 

 

 

 

你可能感兴趣的:(Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析)