LINUX.ORG.RU

чистый Си

 


2

3

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

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

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

Ты там в зюзю что ли? Что с тобой?

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

по количеству абсолютно дурацких (в 21 веке) проблем с безопасностью C стоит на первом месте

по количеству абсолютно дурацких проблем с безопасностью нож стоит на первом месте (как и самое частое орудие убийства)

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

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

Кто не осиливает или не хочет брать на себя большую ответственность идет брать пистон или пыхпых.

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

по количеству абсолютно дурацких проблем с безопасностью нож стоит на первом месте (как и самое частое орудие убийства)

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

Кто не осиливает или не хочет брать на себя большую ответственность идет брать пистон или пыхпых.

Я надеюсь, ты про ответственность за созданные CVE?

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

Кто не осиливает или не хочет брать на себя большую ответственность идет брать пистон или пыхпых.

В ядре без C никуда. В системной части — по большей части тоже, но уже есть rust. Но бекенд зачем на нем делать? Attack surface повышать?

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

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

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

Кто, где? Это откровенный пи*дёж.

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

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

говорили что пхп второй по перформансу сразу после си.

Ну если для тебя существует только си и пыхоплеяда, то это правда.

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

А зачем нужны другие языки, когда с за глаза хватает абсолютно для всего? Или ты как те хипстеры, которым лишь бы новое, а что оно - говно, пофиг?

Ещё раз для идиотов: С - прекрасный гибкий универсальный язык. На кой сдались другие?

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

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

Авторам библиотеки багрепорт-то отправили хоть? :)

hobbit ★★★★★
()

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

Ну есть целый браузер на чистом си и с оригинальным движком:

https://www.netsurf-browser.org/

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

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

Ты ведь в курсе, что http и всё, что над ним — это очень высокоуровневый протокол? Парой функций в сишной программе ты не обойдёшься.

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

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

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

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

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

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

Это уже для ТСа была наводка :) Тем более, он говорит, ему нужен код

примеры работы как загрузить веб контент, json или код html, и cookie на чистом си под линукс

а не готовые решения.

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

так готовые решения опенсорцные. открывай код и смотри, если надо.

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

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

Не понимаю, что хочет ТС. У меня веб на чистых сях (нет, вру: на клиенте жабоскрипт насиловать приходится, т.к. браузеры почему-то в С не умеют) отлично работает. Проблем нет.

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

а насчёт netsurf, может, стоит присоединиться к его разработке. потому что писать с нуля долго и нудно. с хрома надо валить, а жирнолис теперь вообще не на плюсах и стал ненужен. я попробовала палемун. но у него жутко течёт память: за ночь он сжирает все 16 гигов моего ноута. а я не закрываю программы и для меня это не вариант. плюс у палемуна по какой-то неведомой причине не работает связка с диалогами выбора файлов (вероятно, у меня нет какой-то гномятины или ещё чего) и я не могу выбрать юзерские сертификаты, а они мне нужны. наверное, можно через nss это сделать, но это как-то топорно будет. такие вещи можно использовать только в крайних случаях. а falkon перестал запускаться после обновления то ли nss, то ли dbus. там лезут какие-то непонятные тараканы и чтобы разобраться, надо лезть очень глубоко в реализацию библиотек культи. мне бы этого не хотелось. ну и он тоже на хромиуме. а это чревато.

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

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

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

Ну так вперёд! Ничего сложного там нет.

С - это кошерно! Хейтеры С пусть хоть удавятся, но их говноЯПы дальше навозной кучи не пройдут.

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

Это да.

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

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

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

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

С - это кошерно! Хейтеры С пусть хоть удавятся, но их говноЯПы дальше навозной кучи не пройдут.

Почему C-фанатиков так беспокоит код в чужих проектах?

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

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

Так под Linux или микроконтроллеры без ОС? Если линукс, то возьми libressl (там документация лучше, и есть новый API для более удобной работы с TLS), libev, libcurl и вперед. curl дырявый, конечно, но что ж поделать.

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

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

Разве что sqlite или mysql

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

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

Он вроде сервер хочет, не? Я почему-то думаю, что он хочет асинхронный сервер. И с защитой.

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

Тогда проще nginx или апач развернуть. Ковырять в такие дебри нет смысла.

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

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

Nginx нужен, чтобы не париться самому с SSL и выдачей файлов. А логика на CGI делается. Ну или ещё лучше: отдельно работающий демон с вебсокетами.

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

Nginx нужен, чтобы не париться самому с SSL и выдачей файлов.

Может он файлы на лету генерит, как гитхаб архивы.

А логика на CGI делается. Ну или ещё лучше: отдельно работающий демон с вебсокетами.

Ну вот он и хочет (наверное) сделать такой демон. Только без вебсокетов.

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

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

а вы тут спорите кто круче лыжник или сноубордист)))

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

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

Да йопт. Что значит «нет опыта с сокетами»? Ты хочешь сервер или клиент сделать? Обмен данными с php скриптом как идет? Ты ему GET/POST, а он тебе ответ? Или наоборот?

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

Что такое «сокеты для локальных пхп»?

а вы тут спорите кто круче лыжник или сноубордист)))

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

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

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

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

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

ЯННП. Локальный PHP скрипт использует твой демон, как прокси, для обращений к другому PHP скрипту?

клиент естессно, отправить гетом, забрать json

Что-нибудь, кроме веба, демон делать будет? Те самые «тяжелые вычисления»?

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

kirk_johnson

ЯННП

что тут непонятного. обычный обмен данными между демоном и скриптом. демон ждет входящие соединения. пхп как начнет работу устанавливает соединение с демоном и отсылает данные.

kirk_johnson

Что-нибудь, кроме веба, демон делать будет?

да. но это к теме не относится. принял, обработал, отправил.

все таки сноубордист круче

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

что тут непонятного. обычный обмен данными между демоном и скриптом. демон ждет входящие соединения. пхп как начнет работу устанавливает соединение с демоном и отсылает данные.

И чо демон с ними делает? По какому протоколу отсылает?

да. но это к теме не относится. принял, обработал, отправил.

Отлично. Возьми libev, libressl, libcurl, чонить для json по вкусу (jansson, jsmn, тысячи их) и вперед.

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

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

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

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

Тогда зачем ты делаешь HTTP в демоне на C P_P

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

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

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

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

Эээ... отправь job на обсчет демону по unix domain socket, забери результат, отправь удаленному хосту из php-скрипта.

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

Ну или вообще не делай демона: напиши программу, которая в stdin принимает задание, а в stdout ррезультат пишет. И зови ее из скрипта.

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

да выбросил бы давно, и как научуть сями кодить выброшу

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