C en Fedora — instala gedit, compila con gcc y escribe tu primer programa
Instalar gedit en Fedora y compilar con gcc fue lo primero que tuve que resolver en IC2. Cuando nos dijeron que ibamos a programar en C usando gedit, lo primero que hice fue abrir la terminal de Fedora y escribir gedit. La respuesta fue inmediata: command not found. Nadie me había avisado de que había que instalarlo.
En este artículo te explico cómo instalar gedit en Fedora, cómo abrirlo correctamente usando & para no bloquear la terminal, y cómo compilar y ejecutar tu primer programa en C con gcc. Todo con capturas reales de mi Fedora en VirtualBox.
Si todavía no tienes Fedora instalada, primero sigue esta guía.
Tabla de Contenidos
Paso 1 — Instalar gedit en Fedora
Abre la terminal de Fedora y ejecuta:
sudo dnf install gedit -y

dnf es el gestor de paquetes de Fedora, el equivalente a la App Store pero para software de terminal. El -y acepta automáticamente la instalación sin pedirte confirmación. Tardará unos minutos dependiendo de tu conexión.
Cuando termine verifica que se instaló correctamente:
gedit --version
Paso 2 — Abrir gedit sin bloquear la terminal
Aquí está el truco que nadie te explica. Si abres gedit escribiendo simplemente:
gedit
La terminal se queda bloqueada, no puedes escribir más comandos mientras gedit está abierto. Tendrías que abrir otra terminal para compilar y ejecutar tu código o liberar la consola usando Ctrl+Z .

La solución es el operador &, ejecuta el programa en segundo plano:
gedit &

Con el & al final, gedit se abre pero la terminal sigue libre. Verás un número entre corchetes — ese es el PID (Process ID), el identificador del proceso de gedit. Ahora puedes seguir usando la terminal mientras gedit está abierto.
¿Qué es un proceso en segundo plano?
En Linux cada programa que ejecutas es un proceso. Normalmente los procesos corren en primer plano (foreground), ocupan la terminal hasta que terminan. Con & los mandas al segundo plano (background), siguen ejecutándose pero liberas la terminal.
gedit archivo.c & # abre gedit con un archivo específico en segundo plano
Esto es especialmente útil en IC2 porque así puedes tener gedit abierto con tu código en una ventana y la terminal libre para compilar y ejecutar sin cambiar de ventana.
Paso 3 — Tu primer fichero en C
Crea la carpeta para tus prácticas de C:
mkdir -p ~/IC2/Practicas/P1_introduccion cd ~/IC2/Practicas/P1_introduccion
Abre gedit con tu primer fichero:
gedit hola.c &

Escribe este código en gedit:
#include <stdio.h>
int main() {
printf("Hola, mundo\n");
return 0;
}
Guarda con Ctrl + S. Este es el programa más simple posible en C, vamos a entender qué hace cada línea antes de compilarlo.
¿Qué significa cada línea?
#include <stdio.h>: le dice al preprocesador que incluya la biblioteca estándar de entrada/salida. Sin esta línea no puedes usarprintfniscanf. Es el equivalente alimportde Python.int main(): la función principal. Todo programa en C debe tener una funciónmain, es el punto de entrada, lo primero que ejecuta el sistema.printf("Hola, mundo\n"): imprime texto en la terminal. El\nes el salto de línea, sin él el siguiente prompt aparecería pegado al texto.return 0: indica que el programa terminó correctamente. Un valor distinto de 0 indica error.
Paso 4 — El modelo de compilación en C
Antes de compilar, entiende qué pasa por dentro. En Python ejecutas directamente el archivo .py. En C el proceso tiene varias fases:

Preprocesador — procesa las líneas que empiezan por #. Elimina comentarios, incluye el contenido de los .h y sustituye los #define. Tu #include <stdio.h> se expande aquí, literalmente copia el contenido de stdio.h en tu fichero.
Compilador — convierte el código C en código máquina. Genera un fichero objeto .o, código binario pero no ejecutable todavía.
Enlazador (linker) — combina tu fichero objeto con las bibliotecas necesarias (como la de printf) y genera el ejecutable final.
Cuando usas gcc hola.c -o hola estás ejecutando las tres fases de una vez. Puedes verlas por separado:
gcc -E hola.c -o hola.i # solo preprocesador → genera hola.i gcc -c hola.c # compilador → genera hola.o gcc hola.o -o hola # enlazador → genera el ejecutable
En la práctica siempre usarás el comando completo de una vez.
Paso 5 — Compilar con gcc
Vuelve a la terminal (que está libre gracias al &) y compila:
gcc hola.c -o hola
Si no aparece ningún mensaje de error, la compilación fue correcta. Si hay errores, gcc te dice exactamente en qué línea está el problema.
¿Qué significa cada parte del comando?
gcc— el compilador de C en Linux (GNU Compiler Collection)hola.c— el fichero fuente que quieres compilar-o hola— nombre del ejecutable que genera. Sin-ocrea un fichero llamadoa.out
Verifica que se creó el ejecutable:
ls -l

Fíjate en los permisos, el ejecutable tiene la x (ejecución) que el fichero .c no tiene.
Paso 6 — Ejecutar el programa
./hola

El ./ es obligatorio en Linux, le dice al sistema que el ejecutable está en la carpeta actual. Sin el ./ Linux busca el programa en las rutas del sistema y no lo encuentra.
El flujo de trabajo completo
Este es el ciclo que repetirás miles de veces en IC2:
gedit programa.c & # 1. abres el editor en segundo plano # ... escribes el código en gedit ... # ... guardas con Ctrl+S ... gcc programa.c -o programa # 2. compilas ./programa # 3. ejecutas # ... ves el resultado ... # ... vuelves a gedit a corregir ... # ... repites desde el paso 2 ...
Errores comunes al empezar
Error 1 — Olvidar el &:
gedit hola.c # terminal bloqueada — no puedes compilar gedit hola.c & # correcto — terminal libre
Error 2 — Ejecutar sin ./:
hola # bash: hola: command not found ./hola # correcto
Error 3 — Olvidar return 0:
int main() {
printf("Hola\n");
// sin return 0 — warning del compilador
}
El programa funciona pero gcc da un warning. En IC2 los warnings son importantes, son señales de que algo no está del todo bien aunque compile.
Error 4 — Olvidar el ; al final de las instrucciones:
printf("Hola\n") // error de compilación
printf("Hola\n"); // correcto
En C cada instrucción termina con ;. Es el error de sintaxis más común al principio.
Resumen y siguiente paso
Con esto tienes el entorno completo para programar en C en IC2:
sudo dnf install gedit -y # instalar gedit gedit archivo.c & # abrir editor en segundo plano gcc archivo.c -o archivo # compilar ./archivo # ejecutar
En el siguiente artículo vemos los fundamentos del lenguaje C — tipos de datos, variables, operadores y las funciones printf y scanf para leer y escribir datos.
C on Fedora — install gedit, compile with gcc and write your first program
When I was told in IC2 we’d be programming in C using gedit, the first thing I did was open the Fedora terminal and type gedit. The response was immediate: command not found. Nobody warned me it needed to be installed.
This article covers installing gedit on Fedora, opening it correctly with & so you don’t block the terminal, and compiling and running your first C program with gcc.
If you don’t have Fedora installed yet, start here.
Step 1 — Install gedit on Fedora
sudo dnf install gedit -y
Verify the installation:
gedit --version
Step 2 — Open gedit without blocking the terminal
gedit # WRONG — blocks the terminal gedit & # RIGHT — runs in background, terminal stays free
The & sends gedit to the background. You’ll see a number in brackets, that’s the PID (Process ID). Your terminal stays free for compiling and running.
Step 3 — Your first C file
mkdir -p ~/IC2/Labs/Lab1_intro cd ~/IC2/Labs/Lab1_intro gedit hello.c &
Write this in gedit:
#include <stdio.h>
int main() {
printf("Hello, world\n");
return 0;
}
Save with Ctrl + S.
What each line means:
#include <stdio.h>: includes the standard I/O library. Without this you can’t useprintforscanf. Like Python’simport.int main(): the main function. Every C program needs one — it’s the entry point.printf("Hello, world\n"): prints text.\nis the newline character.return 0: signals the program ended successfully. Any other value means error.
Step 4 — The C compilation model
Python runs .py files directly. C needs multiple steps:
Preprocessor — handles # lines. Expands #include, replaces #define, removes comments.
Compiler — converts C code to machine code. Generates a .o object file.
Linker — combines your .o with libraries and generates the final executable.
gcc hola.c -o hola runs all three phases at once. See them separately:
gcc -E hello.c -o hello.i # preprocessor only gcc -c hello.c # compiler only → hello.o gcc hello.o -o hello # linker only → executable
Step 5 — Compile with gcc
gcc hello.c -o hello
gcc— the C compiler on Linuxhello.c— your source file-o hello— name for the executable. Without-oit createsa.out
Check the executable was created:
ls -l
Step 6 — Run the program
./hello
./ is mandatory in Linux — it tells the system the executable is in the current folder.
Complete workflow
gedit program.c & # 1. open editor in background # ... write code in gedit ... # ... save with Ctrl+S ... gcc program.c -o program # 2. compile ./program # 3. run # ... see result, go back to gedit ...
Common mistakes
Mistake 1 — Forgetting &
gedit hello.c # terminal blocked gedit hello.c & # correct
Mistake 2 — Running without ./:
hello # bash: hello: command not found ./hello # correct
Mistake 3 — Missing return 0
Compiles but gives a warning. Warnings matter in IC2.
Mistake 4 — Missing ;:
printf("Hello\n") // compile error
printf("Hello\n"); // correct
Every C instruction ends with ;.

3 comentarios