Estoy implementando un syscall que se llama en el espacio de usuario, digamos por foo. El syscall accede al task_struct de foo (a través del puntero global actual), imprime su nombre y pid, luego pasa al proceso principal de foo, al padre primario de foo, etc. Imprime todos sus nombres y pips hasta e incluyendo el proceso init.¿Los identificadores de proceso no son negativos en Linux?
El pid = 1 está reservado para init, el pid = 0 está reservado para swapper.
De acuerdo con task_struct de swapper, su proceso principal es él mismo.
Swapper (o sched) siempre tiene pid = 0 y siempre es el proceso principal de init?
¿Son todas las pids no negativas? ¿Está bien para mí hacer esa suposición?
Gracias, comprobaré inmediatamente cómo se define pid_t. – Plazo
Creo que está firmado, 'fork' devuelve' pid_t' que puede ser '-1'. También creo que recuerdo haberlo visto en algún encabezado. Necesito comprobar. Ofc, esto no quiere decir que el ID del proceso puede ser negativo –
Está firmado, solo lo examinó. Pero es así para devolver los errores: D –