LINUX.ORG.RU

чистый Си

 


2

3

Всем добра. Учусь программированию под линукс, знаю что нет ничего лучше чем практика. Пересел из микроконтроллеров, поэтому практически все нужно осваивать заново. Много гуглил но так и не смог найти примеры работы как загрузить веб контент, json или код html, и cookie на чистом си под линукс. а также как отправлять cookie. Киньте пример или ссылку на него, только рабочий пример пожалуйста, так как для меня это новые ворота.

Ответ на: комментарий от crutch_master

скинули, разбираюсь, за что большое спасибо.

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

casusnur
() автор топика
Ответ на: комментарий от casusnur

Ну конечно у них у всех корни где-то там. И что с того? Эти языки построены вокруг их ВМ с jit, рефлексией, метапрограммированием и прочими фичами. Тут ты можешь генерить код на лету, а в си ты будешь делать кодогенераторы и компилять. В си ты будешь плясать с кастами воокруг *void, а там есть нормальные расширяемые объекты. Да, конечно ты можешь вообще всё писать на си, но языки с ВМ есть не просто так, а потому что на них писать всякую не требовательную к ресурсам прикладуху тупо удобнее и проще.

crutch_master ★★★★★
()
Ответ на: комментарий от RazrFalcon

Хммм...

Это вы из-под оффтопика пишете? Да и то там, насколько я помню, процентов 80-90 системообразующих вещей, это С. В онтопике, наверное, и того больше. Ядро, да и базовый утиль.

Вы даже на сервере... Впрочем, молчу-молчу-молчу... =)))

Вы бы аккуратнее как-то с диагнозами-то? =)))

Moisha_Liberman ★★
()
Ответ на: комментарий от Iron_Bug

Благодарствую на добром слове. =)

Я просто верун христанутый, с ПГМ. Из этого и исхожу. Можешь помочь? Помоги. Не можешь, так просто посиди, молча послушай, авось и за умного сойдёшь. Вот и предпочитаю разговаривать... редко. Не более того. =)

Moisha_Liberman ★★
()
Ответ на: комментарий от Enthusiast

Кстати, да!

Тоже очень хорошая книга. ТС, Вам тоже имеет смысл обратить на неё внимание. Там есть про то, как написать нормальное приложение. Глава, если не ошибаюсь, то 11. Там и про то, как с аргументами командной строки работать в приладе. Не всегда нужно свои велосипеды изобретать, в С их полно уже завезено. Например, в 11 главе приведена работа с getopt_long для анализа комм. строки, а есть ещё и argp (сами нагуглите). Ну и так книгу посмотрите, должна понравиться. =)

Moisha_Liberman ★★
()
Ответ на: комментарий от casusnur

дергали либы на питонах или жс

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

Даже джаву для скриптоты и удобства встраивали, например в игрушки. Вот игрушка на плюсах, а скрипты на джаве. Это был 2003 год, я ещё удивился тогда.

anonymous
()
Ответ на: Благодарствую на добром слове. =) от Moisha_Liberman

я не запоминаю юзеров и не имею каких-то целей кому-то понравиться или за кого-то «сойти». я комментирую конкретные посты. это не распространяется на всё остальное. и это форум про Linux, да. а не про сказки овцеводов Синая.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от casusnur

Да в С всё в лиспапедах.

Возвращаюсь к теме, как и обещал. Извините, раньше не смог, отхожу после больнички ещё. Госпитализировали 29.12.2018г., выписали 21.01.2019г.. Но последствия до сих пор чувствую. Как-то хреново год начался и, учитывая события на ЛОРе, не у меня одного, судя по всему. Но да ладно...

К делу. С силён своими библиотеками. Про парсинг комм. строки уже поговорили. Дальше, если мне надо конфиграционные файлы читать-писать, то вон, libconfig есть. Она же в OpenWRT присутствует. Т.е., не нужно велосипедить. Кстати, альтернатив тоже полно.

Выше вон, уважаемый hobbit пишет:

Кстати, это ведь тематика, которая подразумевает серьёзную работу со строками. Ты как будешь с ними работать? В традициях чистого си — через strstr, strcat и всё такое? Или нагородишь каких-нибудь абстракций вроде GString?

Для серьёзной работы со строками (точнее с массивами символов, «строк» как таковых в С нет, несмотря на существование string.h), есть и регулярные выражения. Даже два варианта. Либо считающийся более медленным вариант из стандартной библиотеки POSIX regular expressions (стр. 247 и далее вот в этом справочнике по glibc). Его, кстати, тоже хорошо бы под рукой иметь.

Либо, если мы не боимся лишней зависимости, то использовать считающуюся более быстрой реализацией libpcre/libpcre2. Это perl compatible regular expressions. Можно как угодно.

Из сетевых дел про libevent/libcurl уже помянули, но на деле, либ под работу с сетями херова гора. например, есть libssh2. Например, мы хотим залогиниться на хосте и бросить туда команду на исполнение на том хосте. Пример с localhost и uptime. Упппссс... А не аналог ли это ansible получается по своей идее? Ну да, ansible умеет по многим хостам команды кидать, но что мешает на машине управления прочесть конфиг, прочесть набор команд, которые надо бросить на исполнение и по конфигу создать N потоков, по числу машин и практически одномоментно отправить команды? Да ни что. Написать только это надо... Ладно. Кому надо, тот либо осилит, либо у того уже есть. =)

Ещё по сетям, так все знают питоний scapy, позволяющий создать какие-нибудь хитрые пакеты. Но мало кто догадывается, что на коленке с libnet получается по сути всё то же, но без питона.

Выше я про glibc помянул, так есть ещё два функциональных аналога. Программисты под одноплатники и embedding их любят. Это uClibc и musl. Вопрос не в скорости. Как правило, реализации с glibc могут оказаться быстрее и в ней самой фич больше. Но статически слинкованный бинарь с glibc это > 800kB, а с uClibc или musl размеры куда как скромнее. Но и то выбирать надо.

О выборе. Вот например довольно тупая задача в весьма тупом треде. Проблема тут в том, что сишник знает об mmap() и использует его, а парни там по 4096 или по 8К читали данные, наблюдая за борьбой приблуды и винчестера. А так-то и питон и перл, это очень и очень хорошие языки. Но только сишник задал себе вопрос нафига так тормозить-то? Хотя, опять же, возникают другие вопросы. Например, на загруженном серваке, напостоянку, я бы так не стал задачу гонять. Потому что перегрузить сервак можно и вместо улучшеиня получить ухудшение. А так-то, разовая задача — «выстрелил и забыл», почему нет? Т.е., всегда можно подобрать механизм или реализацию себе по вкусу/по потребностям. От самого по себе синтаксиса С это ни как не зависит.

Про базы данных (ну чисто чтоб ни кто не ушёл обиженным). Когда ещё не было термина NoSQL уже была БД, его реализующая. Berkeley DB, сейчас Oracle Embedded. Встраиваемая в приложение. Умеет и шифрованные базы и базы в памяти и репликацию между хостами. У редиса есть hiredis. У postgreSQL есть и libpq и ecpg — Embedded SQL in C. В постгресе можно даже свои типы данных создавать и описывать работу с ними. Да, на С. Про SQLite и не говорим. Только в путь. Про мускуль ни чего не скажу, я не спец в нём, но вроде тоже можно. Правда, знаю точно что та же Berkeley DB там была основой для InnoDB, но как там оно живёт сейчас я не знаю.

Биндинги к другим языкам. В тот же nmap или World of Warcraft встроена поддержка скриптов на lua. Делается на счёт «раз» для расширения функционала. Ну и питон, например, очень хороший язык, но если надо скорость, то... Либо, либо. Короче, вне зависимости от версии, на С или плюсах пописать придётся.

В общем, при кажущейся простоте синтаксиса С, этот язык совсем не прост. И на нём можно в принципе что угодно. Давал уже ссылки где-то, но повторю. Можно и ООП от Axel-Tobias Schreiner как наиболее фундаментальная, можно и ФП (книга существует с 1997г., проблема в том, что... «а мужики-то и не знают», но это уже проблема мужиков). Если, конечно, императивщины не хватает для решения задач. OOP in C как правило, у embedderов пользуется спросом.

В общем, просто не стесняйтесь гуглить. Решений полно. Вплоть до корутинов и зелёных нитей. Просто, народ думает что где-то, наверное, существуют языки, которые сами код напишут или среды разработки, которые сами проект создадут по запросу пользователя. Но тогда вопрос — нафига были бы нужны все эти мужики, если бы любой олень мог написать программу любой сложности и выполняющуюся с максимальной эффективностью? Сишники, как я подозреваю, в индустрии бы остались. А вот встраиватели питона в embedding, похоже, нет. Просто потому, что несмотря на наличие микропитона, как-то он не особо распространён. Впрочем, это уже мои домыслы и догадки. =)

Moisha_Liberman ★★
()
Ответ на: комментарий от SakuraKun

не слушай вэбмакак

Так ведь это ТС хочет веб писать. От написания его на си умнее не становятся, становятся Эдиками.

anonymous
()
Ответ на: комментарий от anonymous

Думаю, если переписать веб на Си то он станет весьма быстрым и эффективным :) Хотя бы потому что привыкшие к жирным фреймворкам и лепить тормозную (пусть и красивую иногда) жирноту - сразу отсеются ;)

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 2)
Ответ на: комментарий от casusnur

Не за что.

Всяческих успехов. =)

Ну а без английского тут ни куда, это точно.

Moisha_Liberman ★★
()
Ответ на: комментарий от SakuraKun

Лет 10 назад статья была.

О, вот она!

Прямо оттуда цитата (https://m.slashdot.org/story/128834):

Recently, Facebook provided us with some information on their server park. They use about 30,000 servers, and not surprisingly, most of them are running PHP code to generate pages full of social info for their users. As they only say that 'the bulk' is running PHP, let's assume this to be 25,000 of the 30,000. If C++ would have been used instead of PHP, then 22,500 servers could be powered down (assuming a conservative ratio of 10 for the efficiency of C++ versus PHP code), or a reduction of 49,000 tons of CO2 per year. Of course, it is a bit unfair to isolate Facebook here. Their servers are only a tiny fraction of computers deployed world-wide that are interpreting PHP code.

Выложила девица-красавица в пейсбученек сисечки, ножки или жратву, вот считай, деревце и срубила. Стоило ли оно того? Не знаю. =)

Moisha_Liberman ★★
()
Ответ на: комментарий от Iron_Bug

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

О, я ещё тебе fossil попиарю, вдруг понравится, поможешь разработчикам...

Есть такая уникальная штука Fossil SCM — это такой себе git со встроенным веб-сервером, багтрекером, вики, форумами, и т.д. Всё это — в одном небольшом бинарнике на си. Их вебсайт крутится на нём же.

Проверить может любой желающий, даже если его нет в вашем репозитории — это всего один бинарник:

wget https://www.fossil-scm.org/index.html/uv/fossil-linux-x64-2.8.tar.gz
tar xf fossil-linux-x64-2.8.tar.gz fossil
./fossil init testrepo.fossil
./fossil ui testrepo.fossil
И открыть http://localhost:8080/

В общем-то, fossil — единственный настолько продвинутый пример веба на си, который я знаю.

anonymous
()
Ответ на: комментарий от SakuraKun

Думаю, если переписать веб на Си то он станет весьма быстрым и эффективным :) Хотя бы потому что привыкшие к жирным фреймворкам и лепить тормозную (пусть и красивую иногда) жирноту - сразу отсеются ;)

Тогда он станет не быстрым и эффективным, а просто исчезнет. Если сейчас у нас на тысячу быстрых сайтов приходится миллион медленных, то переписывание на Си убьёт этот миллион.

Помните конец 90х? Диалапные модемы, плейнтекстовые сайты... Это — веб на си.

Как гуй не пишут на ассемблере, так и веб не пишут на Си. Это слишком долго и сложно. Чтобы писать что-то сложное нужны абстракции более высокого уровня. Так взлетел перл, за ним php. Ну и пошло-поехало...

anonymous
()
Ответ на: комментарий от anonymous

Я только добавлю...

fossil это от автора SQLite, если я не ошибаюсь. Дядька явно знает как писать быстрый код. И с минимумом потребления ресурсов.

Moisha_Liberman ★★
()
Ответ на: комментарий от abs

Поэтому чтоб почитать текстовый лор нынче нужно 8 гигов рамы.

Фу жить в таком мире

pihter ★★★★★
()
Ответ на: комментарий от anonymous

Далаааадно. =)

Помните конец 90х? Диалапные модемы, плейнтекстовые сайты... Это — веб на си.

И на чём же сейчас написан тот сервер, на котором мы сейчас общаемся? =)

И как каналы передачи данных связаны с отображением странички в браузере? Да ни как. Исключая того, что с совершенствованием технологий передачи данных мы получили возможность грузить в браузер клиента больше дерьма за тот же промежуток времени. Однако (например) выборка по базе комментов в форуме ну ни как не связана с тем, что у меня к дому идёт волокно.

Перл и похапе взлетели из-за того, что скрипторылые больше ни чего другого не осиливали и не хотят осиливать. Мало производительности сервера? Купите более мощные процы, больше памяти, поменяйте винты на ssd, купите более мощный сервер. Писать экономичный код мы и не хотим и не будем. Этож надо «пердолиться»... Знать, учиться. Нафига? Берём язычок для не-программистов (привет доке на похапе версии 2.0) и фигачим на нём «серьёзный фреймворк». Тыщщи их. А толку-то? Нового ни чего и не было и нет.

Тогда он станет не быстрым и эффективным, а просто исчезнет. Если сейчас у нас на тысячу быстрых сайтов приходится миллион медленных, то переписывание на Си убьёт этот миллион.

Открою страшную тайну. Знаю сайты, которым вот уже по два десятка лет. И они написаны да, на С. Фронтенд меняется, джаваскрипт уже другой грузится, а бизнес-логика как жила, так и живёт, с минимумом изменений. Хотя да, сайты стали полностью вебдванольные, «мокрый пол», все дела... На написание бизнес-логики на С фронтэнд тоже мало влияет.

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от anonymous

Я сказал-то что?

Я сказал «сервер» или «движок форума»? Хорошо. Ладно. На чём тогда написана сама по себе java? Тоже «жаба и жс»? =)

Moisha_Liberman ★★
()
Ответ на: Я сказал-то что? от Moisha_Liberman

В случае с жабой это синонимы, разве нет? А поверх чего жаба работает совершенно не релевантно, любое устройство любой архитектуры на котором запускается её интерпретатор. Можно прямо в браузере, на жс. https://en.wikipedia.org/wiki/JavaPoly

anonymous
()
Ответ на: комментарий от anonymous

Чего не релевантно? =)

Чего там ещё «можно»? Вопрос задан как оно сейчас сделано? Вопрос задан как оно сейчас работает?

Сделано так, что без сишечки не обойдёшься? Ну примите тогда мои соболезнования. =))) Всё остальное это увы и ах, но фантазии в данном конкретном случае. Извините. =)

P.S. Насчёт ссылки. Да, как я погляжу, чуваки решили по второму кругу java-апплеты изобрести? Ню-ню... Видимо, прошлого раза не хватило. =)

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Ну вон, твоя любовь 20 лет на сях говорят пишет, опыт, наверное, имеет. Тут собрались пацаны, написали но и на полном серьезе не могут понять почему все тут же си не побросали.

Я не так давно живу, но постоянно наблюдаю как новомодные языки появляются как чёрт из табакерки, а через эн лет никто уже про них и не помнит.

Тебя послушать, так каждый год нужно новый язык учить. Ведь он в чем-то лучше предыдущего. Так и будешь всю жизнь с опытом разработчика в 1 год.

Она, конечно, больная, но насчёт того что языку бы лет 10 настояться, а там посмотрим, дело сказала

pihter ★★★★★
()
Ответ на: комментарий от anonymous

И, кстати, нет.

В случае с жабой это синонимы, разве нет?

В случае с жабой «движок форума» и «сервер» это не синонимы. Apache Tomcat это он и есть, а что там сверху прикручено (или не прикручено), это уже дело десятое.

Moisha_Liberman ★★
()
Ответ на: комментарий от kirk_johnson

Как это ты ловко вопрос под свой ответ изменил на лету.

Выше по топику, кстати, ты говорил что статистики у тебя нормальной нет.

Учитывая возраст и популярность си, мерятться с ним библиотеками выглядит неадекватно.

Ты сейчас заявишь что это все старые и ненужные библиотеки. Ну, во-первых ты в первом посте этого критерия не озвучивал, а во-вторых:

-- моя библиотека книг - самая большая в мире!

-- позвольте, но в вашей библиотеке только 1 книга по го. А в библиотеке Кембриджа 4 миллиона книг.

-- ну, если считать релевантные книги — у меня самая большая библ отека!

pihter ★★★★★
()
Ответ на: комментарий от anonymous

Покажи код для решения произвольной задачи на languageName на чем ты там пишешь

Странный какой-то вопрос.

Тебя смущает то, что низкоуровневых инструмент не может решить высокоуровневый задачи? Ну так транзистор не может раздавать дома вайфай. Вывод - роутер лучше транзистора.

pihter ★★★★★
()

самое лучшее - golang, там все http,json,html,... в коробке, также если интересно - там есть много тулкитов для Web`а !

lfed-dev53
()
Ответ на: комментарий от pihter

Тебя послушать, так каждый год нужно новый язык учить. Ведь он в чем-то лучше предыдущего. Так и будешь всю жизнь с опытом разработчика в 1 год.

Эм... где я такое говорил? Ты либо меня жирно троллируешь, либо читать не умеешь. Я абсолютно согласен с тем, что полностью заменить C сейчас очень, очень сложно. Но тем не менее, я достаточно хорошо его знаю, чтобы сказать — да, язык имеет жирный недостаток, который можно устранить и получить более хороший язык. Почему этого не сделать? Более того, определенные вещи, не требующие супер-пупер производительности, можно написать на других, более безопасных языках.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 3)
Ответ на: комментарий от kirk_johnson

Да не говорил, конечно, я гиперболизирую.

Да, недостатки есть, никто ж не спорит.

Ты просил назвать хоть одну причину, почему не написать на го, ведь там нет этого недостатка:

Опыт. На си я умею, на го пока нет.

Недостатки си давно известны, технология программирования давно отработаны, на го - нет

Литература.

Старшие товарищи, у которых можно спросить.

Инструментарий. Анализаторы кода, например, отладчики

Перспективы учить го. Ну как завтра его забросят авторы? Про си такого страха нет.

Наличие готовых решений и масса открытого кода.

Я не против прогресса, вперёд, пишите. Но го ещё не дорос до взрослых. Когда дорастет - пригласил за свой стол и нальем как равному, а пока пусть уроки учит и не учит старших как жить

pihter ★★★★★
()
Ответ на: комментарий от kirk_johnson

C++ конечно так и сочится из твоего текста, но он слишком жирный и наверно никогда не сможет конкурировать. Се ля ви, что называется.

anonymous
()
Ответ на: комментарий от pihter

Тебя смущает то, что низкоуровневых инструмент не может решить высокоуровневый задачи?

Нет. Меня смущает заявление, что на Си можно написать все.

anonymous
()
Ответ на: комментарий от anonymous

Ну так можно. Все и написано на си.

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

Тебя не смущает, что сто раз уже написали? Луа, там, пхп

Если тебе надо именно в самом си - напиши себе препроцессор (в котором вообще че угодно реализовать можно) и добавь строчку в мейкфайл

pihter ★★★★★
()
Ответ на: комментарий от anonymous

Давайте я покажу? =)

Можно, конечно, свой код сделать и, возможно, так даже было бы и лучше.

А можно ни в чём себе не отказывать и использовать например, те же Google Protocol Buffers. Реализация для них здесь https://github.com/protobuf-c/protobuf-c. Примеры использования здесь https://github.com/protobuf-c/protobuf-c/wiki/Examples.

Хотя, и не факт что я именно их использовал бы. Такого рода задачи можно и через тот же xml-rpc-c вполне успешно решить. Либо через SOUP. Но только понятно, что если у нас есть структура some_struct, то нужна отдельная ф-я, которая будет заниматься сериализацией членов данной структуры, да? И сериализация каждого элемента структуры должна производиться отдельно и данные должны приводиться к сетевому порядку байт через семейство ф-ий hton*() просто потому, что мы не знаем архитектуры, которая на другом конце провода стоит. В xmlrpc-c нам даже не нужно этого делать. Просто обходим элементы структуры и, собственно, вот пример http://xmlrpc-c.sourceforge.net/doc/libxmlrpc.html#cptr

Moisha_Liberman ★★
()
Ответ на: комментарий от anonymous

ну, про fossil я в курсе, и давно. но там всё работает. там чего помогать-то? с ним проблем как раз нет. сейчас главная проблема - браузеры. и это проблема очень большая. такое точно в одиночку не потянуть. ну или будет очень медленно, даже если тратить на такой проект всё своё свободное время. и главное, что систем контроля сорцов навалом. а вот браузеры все либо копроративные, с зондами, либо сильно недоразвитые и глючные. это необходимая работа, потому что если так дальше пойдёт - в какой-то момент я просто останусь без браузера :) и я бы могла юзать консольный lynx, мне от веба вообще почти ничего не нужно. но для работы его не хватит, увы. поэтому тут просто нет выбора. либо я начинаю пилить браузеры, либо будут проблемы. при том, что я совсем не фанат браузеров и в жизни бы гуй не видела, а тем более в коде. но обстоятельства вынуждают.

кстати, из веба на C есть ещё cgit. он маленький, очень простой, но он лучше тем, что интегрирован с git'ом, а не с каким-то своим велосипедом.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от anonymous

Лол, простите, ШТО?

А что там кроме С, не подскажете? Более того! Вообще-то, я упомянул не один, а три варианта. Понимаю Вашу скорбь, милейший, от того что те же xmlrpc-c (в которых тоже окромя С нет ни чего) живут вне Вашего знания о них вот уже лет 20-30, но ни чего не хочу с этим делать. =) Вам оно не нужно, а для меня это вполне релевантный задаче механизм. Если, конечно, мне не будет нужно скодерасить свой, особый вариант. Но я даже написал где можно словить себе гимор...

Вот и получается что сишник работает от задачи, а не-сишник сидит и ждёт пока ему завезут отдельный, Единственно Правильный механизм решения его проблем. У самого-самого с умишком всё скорбно же... =)))

Moisha_Liberman ★★
()
Ответ на: комментарий от anonymous

Да нет...

Не на С это вы, анонсы, сами развлекайтесь. Мне и с С не плохо. У меня всё есть. =))) А как вы порешаете проблемы (если их порешаете), с каким гимором и какой ценой такого решения, если честно, то мне насрать. Ничего что я вот так и прямо? =)))

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: Лол, простите, ШТО? от Moisha_Liberman

А что там кроме С, не подскажете?

Внешние тулзы. Тот же protobuf(хорошая, между прочим, вещь). И не важно, на чем эти внешние вещи написаны(protobuf не на си, а не крестах, если что).

Вы понимаете, что инструмент, реализованный на Си, не тождественен Си?

Ну и да, посокольку protobuf работает через кодогенерацию, то произвольную структуру языка Си, например, из какой-то библиотеки, в на нем не сереализуете автоматом, нужно будет писать адаптер.

anonymous
()
Ответ на: Лол, простите, ШТО? от Moisha_Liberman

Вот и получается что сишник работает от задачи, а не-сишник сидит и ждёт

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

anonymous
()
Ответ на: комментарий от anonymous

Т.е., деградация настолько далеко зашла...

Что для создания пары файлов .c и .h Вам требуется наличия хелпера в системе? protobuf-c, да написанный на крестах, именно этим и занимается. Но я, когда использую данный механизм сериализации, как правило им не пользуюсь.

Это если я не буду даже брать xmlrpc-c/soap, не беря во внимание того, что я могу и сам написать нужный мне в контексте решения конкретной задачи механизм. Чисто так, по-лёгинькому и «не приходя в сознание», не особо вдаваясь в детали. Линканул либку, да и горя не знаешь.

Вы понимаете, что инструмент, реализованный на Си, не тождественен Си?

Батенька, пообщавщись с Вами вообще не понимаю как Вы умудряетесь работать пограммистом, Вам же, наверное, ещё какой-то бедолага-работодятел и денег за этот словесный онанизм платит, да? Мне его жаль (на самом деле, нет). =)))

А чему же тогда этот инструмент тождественен? Постойте, дайте угадаю... Питону? Джавке с джаваскриптом? Чему по-вашему он тождственен-то, откройте тайну, хоть поржём? =)))

Ну и да, посокольку protobuf работает через кодогенерацию, то произвольную структуру языка Си, например, из какой-то библиотеки, в на нем не сереализуете автоматом, нужно будет писать адаптер.

Не продолжайте, ненадо... Я чуть от хохота не сдох, а время уже позднее. =))) Задача всегда решается в каком-то конкретном контексте, а не сферическая и в вакууме. И да, адаптер присать придётся. Ну и что дальше?

Вы к этому не готовы? Тогда к чему был вопрос про сериализации? Хотели умняк скрючить, да не сканало? =))) Соболезную, чё... =)))

Moisha_Liberman ★★
()
Ответ на: комментарий от anonymous

Ну, у кого не получается...

Ну что, Данила-Мастер, не выходит каменный цветок? *с натугой в голосе* Не выхооооодит...

А кто-то херачит всякое-разное от приблуд для консольки и до веб-сервисов, попутно ваяя всякую GUIню на GTK+ (там тоже С, да) и используя всякие разные базы данных, ни в чём себе не отказывая. В том числе и прошивочки там всякие. Язык не налагает ограничений. Проблемы с ложкой у Нео были надуманные, т.к. ложка была деревянной... =)))

Но тут уже кому шашечки, а кому и ехать, знаете ли... =)))

Полагаю дальнейшее обсуждение пустой тратой времени. Пожалуй, завершу его, если только анон чего новенького не изобретёт.

Moisha_Liberman ★★
()
Ответ на: Т.е., деградация настолько далеко зашла... от Moisha_Liberman

я могу и сам написать нужный мне в контексте решения конкретной задачи механизм. Чисто так, по-лёгинькому и «не приходя в сознание», не особо вдаваясь в детали.

Да почти любой сможет. Только что это меняет-то? На Си нельзя обойти поля структуры. Ну нет в языке такого механизма.

Да, вы можете воспользоваться макросами, кодогенерацией, парсингом исходного кода и т.д. и т.п. Это решит вашу задачу. Но не добавит в язык Си эту возможность.

anonymous
()
Ответ на: комментарий от anonymous

Трепло, ты так и будешь мямлить игнорируя вопросы? Показывай не на си.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.