microsoft - visual studio 2017 community español
Proyecto de código abierto Simple C (7)
Como mencionó Steve, es probable que una utilidad estándar de UNIX como "menos" sea una gran idea.
También estaba pensando que tal vez un editor de texto liviano podría ser genial para intentar hackear. "Joe", por ejemplo, está escrito en C y tiene licencia GPL. En la misma línea, si está en Windows, el editor "WinVi" tiene licencia GPL y está escrito en C.
¿O tal vez un simple juego de consola de algún tipo? ¿Preferiblemente textual, como un juego de aventura / RP?
He estado aprendiendo C, y estoy buscando un proyecto de código abierto (preferiblemente muy) simple para entrar. Lo más probable es que implique más jugar y aprender de mi parte que la contribución real, pero parece una excelente forma de ganar algo de experiencia y ver cómo se usa realmente C. ¿Algunas ideas?
Hay una cantidad de proyectos de código abierto que están codificados en C. Si solo está buscando modificar, en lugar de contribuir, simplemente elija una herramienta que use regularmente (para que esté familiarizado con lo que hace, y dónde podría ser alterado / mejorado).
Si busca sugerencias reales, el busca "menos" es un buen comienzo. Está escrito de una manera limpia, es corta, y hace una cantidad sorprendente
¡Por supuesto, esto depende de lo que consideres simple! He chateado con el cliente de correo mutt , que está escrito de una manera ordenada, lo que hace que sea fácil de ampliar, pero ni siquiera pretendo entender cómo funciona.
No mencionas tu entorno, así que soy libre de asumir GNU / Linux. Asumiré más adelante que está ejecutando Debian, y si es así puede descargar la fuente a las aplicaciones muy fácilmente. Solo ejecuta esto:
apt-get source less
Puede encontrar que los proyectos lo suficientemente interesantes como para tener una comunidad de código abierto no trivial implican un poco de complejidad. Naturaleza de la bestia: si realmente no es compleja (o no es realmente compleja), ya está bien resuelta y es estándar o no es lo suficientemente interesante como para atraer mucha atención.
La aparición de nuevos dominios problemáticos rompe esta condición, por supuesto, así que solo necesitas construir algo tan inteligente que sea obvio después del hecho ...
Dicho esto, considere dillo , que a pesar de la página principal está trabajando silenciosamente en la versión 2 (basada en fltk).
Si quieres ver un buen código, echa un vistazo a la fuente sqlite.
Si no puedes contribuir o jugar con él, no lo sé, pero vale la pena mirar al menos para ver el estilo C bueno y limpio.
Suena extraño, pero creo que la mejor manera de aprender C es escribir extensiones C para Python. Hay muchas extensiones simples que de alguna manera usan la API de Python C y es divertido trabajar con eso. (Probablemente sea menos interesante si no conoces Python ^^)
Esa es básicamente la forma en que aprendí C. Para los módulos pequeños solo mira Cheeseshop ^ Wpypi, hay muchas bibliotecas que están escritas en C.
De lo contrario, echa un vistazo a algunas aplicaciones simples de GUI de GNOME. Muchos de ellos están escritos en C.
¿Qué idiomas ya sabes? ¿Conoces un lenguaje dinámico como Perl / Python / Ruby / Groovy?
Lo que C es mejor (en mi opinión) es la programación de bajo nivel que involucra acceso a hardware, matemática considerable y algoritmos altamente eficientes.
Obtendrá más satisfacción si no intenta usar C para hacer las mismas cosas que en un lenguaje dinámico, sino que intente utilizarlo para lo que es bueno. ¡Intenta piratear el hardware! ¿Tiene una cámara digital, un enrutador, un teléfono celular u otro dispositivo con firmware o utilidades de código abierto? ¡Intenta piratear esos! ¡Intenta escribir un código para mirar archivos binarios! Si le interesan las matemáticas y la ciencia, busque un paquete numérico relacionado con su ciencia favorita y busque en el código.
Por último, intente echar un vistazo al kernel de Linux. Claro, es una gran base de código, millones de líneas de código, pero también extremadamente modular y bien documentada. Hay al menos dos libros muy buenos sobre el código: comprensión de los controladores de dispositivo Linux Kernel y Linux (este último está disponible de forma gratuita en línea).
Mozilla puede ser una buena opción para ti. Para C puede consultar su módulo de seguridad en https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Getting_started_with_NSS