3
存在這些後來的「DUP2」呼叫在android源碼Linux的INIT.C文件,我發現這個代碼:爲什麼android系統中的啓動代碼
static void open_console()
{
int fd;
if ((fd = open(console_name, O_RDWR)) < 0) {
fd = open("/dev/null", O_RDWR);
}
ioctl(fd, TIOCSCTTY, 0);
dup2(fd, 0);
dup2(fd, 1);
dup2(fd, 2);
close(fd);
}
打開控制檯後設備成功地執行一些fork操作,然後繼續複製前三個文件描述符,然後關閉它們(因爲關閉一個會關閉它們)並退出。
這是什麼目的?爲什麼我要確保分配給0,1,2的文件描述符是否接近?
謝謝!我認爲它已經關閉,因爲它們的偏移被鏈接了,但我想我沒有檢查它。 – sagivd