Cómo utilizar la programación en lenguaje C para obtener la capacidad del disco duro de Linux
Funciones relacionadas con el sistema (ejecutar comando de shell) fork, execve, waitpid, popen archivo de encabezado #include define la función intsystem(constchar*string descripción de la función system() llamará fork() para generar un proceso hijo); , El proceso hijo llama a /bin/sh-cstring para ejecutar el comando representado por la cadena de parámetro. Después de ejecutar el comando, regresa al proceso de llamada original. La señal SIGCHLD se archivará temporalmente durante la llamada al sistema() y las señales SIGINT y SIGQUIT se ignorarán. Valor de retorno: se devuelve 127 si system() falla al llamar a /bin/sh, y se devuelve -1 por otros motivos de falla. Si la cadena del parámetro es un puntero nulo (NULL), se devuelve un valor distinto de cero. Si la llamada al sistema() es exitosa, se devolverá el valor de retorno después de ejecutar el comando de shell. Sin embargo, este valor de retorno también puede ser devuelto por el error del sistema() al llamar a /bin/sh, por lo que es mejor verificar. errno nuevamente para confirmar que la ejecución fue exitosa. Notas adicionales: no utilice system() cuando escriba programas con permisos SUID/SGID. system() heredará variables de entorno y el uso de variables de entorno puede causar problemas de seguridad del sistema. Ejemplo #includemain(){system("ls-al/etc/passwd/etc/shadow");}Ejecutar -rw-r--r--1rootroot705Sep313:52/etc/passwd-r------ - -1rootroot572Sep215:34/etc/shadow