正确答案是AC
子进程独有
父进程和子进程拥有独立的地址空间和PID参数。
B. 父进程的文件锁、pending alarms和pending signals
文件锁(File Locks):在父进程中获取的文件锁不会被子进程保留。当父进程调用fork()创建子进程后,子进程会继承打开的文件描述符,但是文件锁状态不会被继承。这意味着子进程需要重新获取文件锁,而不会继承父进程已经获取的锁。
Pending Alarms:在父进程中设置的定时器信号(Alarm Signals)也不会被子进程保留。当父进程调用fork()创建子进程后,子进程会继承父进程的信号处理函数,但是定时器信号的剩余时间不会被继承。子进程需要重新设置定时器信号,并根据需要执行相应的操作。
Pending Signals:父进程中未决的信号(Pending Signals)在子进程中也不会被保留。当父进程调用fork()创建子进程后,子进程会继承父进程的信号处理函数和信号屏蔽字,但是未决的信号不会被继承。子进程开始时会将所有信号的未决状态清除,然后根据需要重新接收和处理信号。
C. 当前工作目录(Current Working Directory) 父进程的当前工作目录是指在执行命令时所处的目录。在调用fork()后,子进程会保留父进程的当前工作目录。这样做的好处是,子进程在执行时可以继续在相同的工作目录下进行操作,而不会影响到父进程的工作目录。这对于需要读取或操作特定目录下的文件的程序而言十分重要,因为子进程可以继续在正确的工作目录下执行操作,而不需要额外的调整。