Учусь программировать на си, следую правилу "пиши свой код, но при этом смотри чужой".
В итоге понадобился сайт где есть исходники по си, может кто нибудь знает,скинь пожалуйста.
Исходники на C
начни с олдскульных книг для начала. а так бери программы из GNU.
В итоге понадобился сайт где есть исходники по си, может кто нибудь знает,скинь пожалуйста.
http://www.slackware.com/
исходники в дистрибутиве, в каталоге source/
они даже собираются, я пробовал :)
удачи.
мда народ не знает о существовании SourceForge.net, любого дистра линукса
вот тут полно исходников:
http://www.linuxfromscratch.org/lfs/
лучше начать писать какой нибудь проект (небольшой), а уж потом начать читать чужие исходники. это конечно же ИМХО, я лично так поступал.
Хотите реальное задание?
У меня имеется потребность написать прогу для обработки кое-каких экспериментальных данных. Прога простая. Мне ее писать не интересно и даже лень. Но прога нужна.
Точнее надо написать несколько таких прог. Они настолько простые, что проще обработку сделать в ручную, или написать пару строк на Питоне. Но мне хотелось бы иметь бинарники.
Прога №1
Имеется текстовые файлы, состоящие из четырех колонок цифр. Файле имеет длину от нескольких сот байт до 100 килобайт. Все файлы находятся в одно директории. Необходимо в каждый файл вставить строку -- его имя -- в самое его начало. Проще показать:
имя исходного файла uv-2011.03.11-00:00.bin.by-hour
содержимое исходного файла:
7 12 19 9
7 6 14 7
10 11 13 9
32 13 9 17
9 12 10 6
...
имя целеавого файла тоже самое,
содержимое целевого файла:
# uv-2011.03.11-00:00.bin.by-hour
7 12 19 9
7 6 14 7
10 11 13 9
32 13 9 17
9 12 10 6
...
Нужно учесть, что в командной строке при вызове проги, нужно указать наименование файла, который нужно обработать. Если нужно обработать несколько файлов, тогда нужно указывать шаблон.
Остальные требования я скажу по ходу работы.
Ну т.е. задача чисто учебная. Я думаю, каждый решит сам, кто он будет в этой задаче -- ученик или студент.
Ну что, поехали?
(Если это (обучение с практическим моментом) у нас заработает, озвучу другие задачи.)
Имеется текстовые файлы, состоящие из четырех колонок цифр. Файле имеет длину от нескольких сот байт до 100 килобайт. Все файлы находятся в одно директории. Необходимо в каждый файл вставить строку -- его имя -- в самое его начало. Проще показать:
я не понимаю - это одна примитивная команда sed. зачем вам бинарник?! (кстати, sed умеет делать бинарники. т.е. sed-программу можно оформить не только как скрипт, но и как бинарник. Это нужно для безопасности - дело в том, что тому, кто запускает скрипт нельзя запретить его читать, а бинарник - можно. И враг не поймёт, где у нас дыра).
длину от нескольких сот байт до 100 килобайт
с такой мелочью смысл? или их тысячи?
zhevak, кстати, как я понял, у вас есть куча данных, и вам надо их как-то обработать? решение:
1) вставляете в каждый файл в первую строчку
#!/usr/bin/command2) даёте каждому файлу право исполняться
3) исполняете.
to DrBatty:
Ну, Билли! Ну ты даешь! (с) какой-то Вестерн.
Док, позвольте задать Вам вопрос -- Вы ощущаете, что задача не Вашего уровня?
Я еще раз обращаюсь к ТС: Вы можете решить эту задачу на Си? Какие у Вас возникают затруднения?
Огромная куча исходников, в основном на Си
я не понимаю - это одна примитивная команда sed. зачем вам бинарник?!...
ТС интересует язык С, если бы его интересовал sed, он бы не постеснялся спросить об этом :)
Ну, Билли! Ну ты даешь! (с) какой-то Вестерн.
Док, позвольте задать Вам вопрос -- Вы ощущаете, что задача не Вашего уровня?
1) создать временный файл man fopen
2) записать туда строчку man fwrite
3) прочитать source и записать в target кусками по 1024 байт - man fread
4) убить source - man unlink
5) переименовать target в source - man 2 rename
6) ????????
7) PROFIT
andaks, sed доступна в исходниках, и её исходники написаны на Си. Причём там довольно всё просто, ибо большинство "матана" (вроде регулярок) на самом деле лежат в glibc. Мало того, sed - одна из самых Ъ утилит, и одна из самых древних (при этом она ещё и живая - выходят новые версии, появляются новые фичи, многие фичи ещё не доделаны, и пока в релизе закомментированы). Я её не просто так посоветовал - изучая какой-нибудь не Ъ отстой, ТС может нахвататься быдлокодерских привычек.
bobr, вы правы. только кроме исходников, я-бы и саму Gentoo поставил, ИМХО собирать генту внутри чего-то другого - слишком сложно.
Ещё подойдёт слакварь, ибо там по умолчанию не только исходники, но и все необходимые инструменты для работы с ними (не только сборка. их ещё хранить, просматривать, и редактировать вообще-то надо).
собирать генту внутри чего-то другого - слишком сложно.
Необязательно собирать генту. Это просто исходники, причем ничем не патченные, все генту-специфичные патчи там же, в отдельных файлах. ТС просил исходники - вот ему исходники, гигабайты и гигабайты исходников (-:
ТС просил исходники - вот ему исходники, гигабайты и гигабайты исходников (-:
не самый лучший совет. вы наверное это сами понимаете. ведь исходники не просто так нужны.
вот ещё около 50000 исходников (правда там в основном С++) : https://developer.mozilla.org/en/Publishing_Mercurial_Clones
вы можете:
1) просматривать исходные тексты. причём не только текущую версию, но и любую другую
2) просматривать, кто, когда, и зачем вносил изменения
3) самостоятельно менять код как угодно
4) вносить свои изменения в проект (ага, вы можете сами помочь в написании FireFox'а)
Может вас заинтересует вот это: http://cirishen.blogspot.com/.
Задачи совсем простые как раз для начинающего.