Sí, efectivamente la función
system() está incluida en la biblioteca
<stdlib.h>, que es la biblioteca de utilerías generales de C.
Con el tiempo terminarás memorizando cuáles funciones van con cuáles bibliotecas. En general se requieren mínimo dos:
<stdlib.h> y
<stdio.h>. La primera contiene a system(), además de otras importantes como malloc(), calloc(), realloc(), y free(). La segunda es para "input-output", es decir maneja las funciones de entrada/salida. Contiene printf(), scanf(), read(), write(), etc.
Otras bibliotecas importantes son
<string.h> para cadenas,
<time.h> para manejar fecha y hora y
<math.h> para funciones matemáticas. Esto por mencionar algunas.
Ahora, en cuanto a
system() considera que esta función lo que hace es pasar su cadena argumento al procesador de comandos del Sistema Operativo, como lo es
cmd en caso de Windows, o
bash en caso de Linux. Es como si escribieras ese comando en la consola, pues. Esto significa que el comportamiento de la función será absolutamente dependiente del sistema operativo, y por supuesto las sentencias de uno pueden no funcionar en el otro. Por ejemplo, si quieres listas los ficheros dentro del directorio actual debes escribir
en Windows, mientras:
en Linux y sistemas UNIX. Por eso no se recomienda
system, ya que hará el programa no portable.
Si lo que quieres es una simple pausa usa, como te han recomendado, la función estándar
getchar() de <stdio.h>.
Ojo, que no es
getch(), ni tampoco
getche(), !!!!!!
La razón por la que se haya tan difundido el bendito
system("pause") es que muchos profesores y academias no enseñan el "verdadero" C, normado por los comités ANSI e ISO/IEC, sino la versión de C de Borland, o la de Microsoft Visual C++ que no son estándares oficiales sino versiones COMERCIALES de ciertas compañías.
Pero se tú un buen estudiante, y aprende el C "académico", o sea el verdadero y hazlo así desde el principio
..... Yoel ......