Простой проект с открытым исходным кодом


16

Я изучаю C, и я ищу (желательно очень) простой проект с открытым исходным кодом. Скорее всего, это будет связано с большей игрой и обучением с моей стороны, чем с фактическим вкладом, но это отличный способ получить некоторый опыт и посмотреть, как C действительно используется. Есть идеи?

27

Существует множество проектов с открытым исходным кодом, которые кодируются на C. Если вы только хотите возиться, а не вносить вклад, просто выберите инструмент, который вы используете регулярно (чтобы вы знали, что он делает , и где он может быть изменен/улучшен).

Если вы ищете настоящие предложения, то пейджер «меньше» - хорошее начало. Это написано чистым способом, является коротким, и it does a surprising amount

Конечно, это в основном зависит от того, что вы считаете простым! Я взломал с помощью the mutt mail client - это написано аккуратно, что облегчает его расширение, но я даже не притворяюсь, что понимаю, как это работает.

Вы не упомянули о своей среде, поэтому я могу предположить GNU/Linux. Я также предполагаю, что вы используете Debian, и если это так, вы можете легко загрузить источник в приложения. Просто запустите это:

apt-get source less 
+5

Я только что узнал, что вы можете получить источник таким образом, это потрясающе. 08 окт. 122012-10-08 23:38:28


7

Это звучит странно, но я думаю, что самый лучший способ узнать, что C является написанием расширений C для Python. Существует много простых расширений, которые каким-то образом используют API Python C, и с этим приятно работать. (Вероятно, это менее интересно, если вы не знаете, Python ^^)

Это в основном, как я узнал, С. Для небольших модулей просто посмотреть на Cheeseshop^Wpypi, существует много библиотек, которые написаны на C.

В противном случае проверьте некоторые простые приложения GNOME GUI. Многие из них написаны на C.

+1

Два больших пальца вверх. Я собирался предложить то же самое, если OP знает Python. API Python очень хорошо разработан. Он научит вас управлению памятью, и вы получите что-то полезное для интерактивного взаимодействия. Полезное расширение Python, которое я написал: pypi.python.org/pypi/py_sg 24 сен. 082008-09-24 00:07:00


2

Вы можете обнаружить, что проекты, достаточно интересные, чтобы иметь нетривиальное сообщество с открытым исходным кодом, сопряжены с некоторой сложностью. Природа зверя: если он действительно не является сложным (или не очень сложным), он либо уже хорошо решен и стандартен, либо не является достаточно интересным, чтобы привлечь большое внимание.

Появление новых предметных областей нарушают это условие, конечно, так что вам просто нужно, чтобы построить что-то настолько умный, что, очевидно, после того, как тот факт, ...

которые говорят, считают dillo, что, несмотря на главной странице тихо работает над версией 2 (на основе fltk).


3

Как сказал Стив, некоторые стандартные утилиты UNIX, такие как «меньше», вероятно, отличная идея.

Я также думал, что легкий текстовый редактор может быть крутым, чтобы попробовать взломать. «Джо», например, написан на языке C и лицензирован GPL. В то же время, если вы работаете в Windows, редактор WinVi имеет лицензию GPL и написан на C.

Или, может быть, простая консольная игра? Предпочтительно текстовая, как игра приключенческого/RP-типа?


3

Если вам нужен хороший код для просмотра, проверьте источник sqlite.
Независимо от того, можете ли вы внести свой вклад или возиться с ним, я не знаю, но это стоит хотя бы взглянуть на хороший, чистый стиль C.

sqlite


6

Какие языки вы уже знаете? Вы знаете динамический язык, например Perl/Python/Ruby/Groovy?

Что такое C best на (на мой взгляд) является низкоуровневым программированием, которое включает в себя доступ к аппаратным средствам, здоровую математику и высокоэффективные алгоритмы.

Вы получите больше удовлетворения, если не попытаетесь использовать C, чтобы делать то же самое, что и на динамическом языке, но старайтесь использовать его для того, что хорошо. Поэтому попробуйте взломать некоторые аппаратные средства! У вас есть цифровая камера, маршрутизатор, сотовый телефон или другой гаджет с прошивкой с открытым исходным кодом или утилитами? Попробуйте взломать их! Попробуйте написать код для просмотра двоичных файлов! Если вы интересуетесь математикой и наукой, найдите какой-то цифровой пакет, связанный с вашей любимой наукой, и соберитесь в коде.

Наконец, попробуйте взглянуть на ядро ​​Linux. Конечно, это огромная кодовая база, миллионы строк кода, но она также чрезвычайно модульная и хорошо документированная. В коде есть по крайней мере две очень хорошие книги: Understanding the Linux Kernel и Linux Device Drivers (последний доступен онлайн).


0

Mozilla может быть хорошим вариантом для вас. Для C вы можете проверить свой защитный модуль на https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Getting_started_with_NSS