Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [Все]   Вниз
  Печать  
Автор Тема: C++ cкрипты  (Прочитано 34049 раз)
0 Пользователей и 1 Гость смотрят эту тему.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« : 30-05-2005 19:32 » 

Хотелось бы многое узнать о С++ скриптах. Во-первых, посоветуйте литературу для начинающего в использование С++ в качестве скрипта и о написании их. И если несложно напишите, часто - ли вы применяете такие скрипты и в каких целях.
зы: в данном вопросе полный ламер (но С++ знаю), т.е. я даже не представляю в каком виде хранятся эти скрипты, как они запускаются, функционирует, возможно-ли взаимодействие с ПХП и пр., т.е. любая верная информация будет полезна, но желательно ближе к делу. Улыбаюсь
Записан

ещё один вопрос ...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 30-05-2005 19:47 » 

nikedeforest Если ты имееш ввиду CGI,  то почитай здесь http://www.firststeps.ru/cgi/cgi1.html
Насколько я понял по ихним объяснениям, это простая программа. Весь ввод-вывод ведется через потоки данных.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 30-05-2005 20:15 » 

Дя, я имею ввиду CGI. Спасибо Finch,  и как я мог забыть про firststep.ru???
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 30-05-2005 20:50 » 

nikedeforest, скриптами считаются интерпетируемые или компилируемые перед исполнением текстовые файлы. "С" - компилируют заранее.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 31-05-2005 11:49 » 

Пока вчитываюсь на firststeps, попозже может вопросы будут. Но пока один, из разряда зачем и почему. Прочитав пару уроков, я увидел большое сходство CGI-скриптов и ПХП (методы передачи данных к примеру (Get POST)). Я не пойму, они все реализуют одну и ту же задачу что-ли? Есть -ли смысл применять С в качестве CGI-скрипта? И, если несложно, приведите пример того, что можно сделать с помощью С и нельзя с помощью ПХП, а то на firststeps приводят пример гостевой книги, которая и на ПХП получается нормально.
Записан

ещё один вопрос ...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 31-05-2005 11:59 » 

nikedeforest С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно. Также я видел книжку, как написать CGI на Delppi. Но сразу встает вопрос времени. ПХП, PHP заточены именно на этом, многие рутинные веши уже сделаны. Остается только твой творческий полет. PHP  и ПХП насколько я знаю, это интерпритаторы (но могу ошибаться). CGI это уже откомпилированная программа.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 31-05-2005 12:24 » 

Finch, PHP  и ПХП - это одно и тоже Улыбаюсь.
Цитата
С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно
ЗОЛОТЫЕ СЛОВА.
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 13-06-2005 13:19 » 

Народ, объясните мне. Не модно что-ли сейчас использовать С++ в CGI-скриптах. Все используют ПЕРЛ. Неужели С++ уступает ПЕРЛ в чем-то?
Вопрос №2: А реально написать скрипт, который бы все время выполнялся в фоновом режиме? Кажется по другому это дело ДЕМОН называется.
На firststeps.ru че-то маловато по СGI скриптам, так сказать введение.
Записан

ещё один вопрос ...
Chaa
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 14-06-2005 03:56 » 

Почему Perl или PHP - потому, что примерно на порядок проще.
Используют ли C/C++ - да, Яндекс, например. Потому, что очень большие нагрузки и производительность критична.
Если не хватает функциональности, например, PHP, то лучше всего написать свое расширение к PHP (PHP-extension).
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 14-06-2005 09:00 » 

Спасибо, успокоил Улыбаюсь.
Вопрос №2 в силе.
Записан

ещё один вопрос ...
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #10 : 14-06-2005 09:19 » 

Реально как на Си так и на Перле.
Только ПХП для этого не годится
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #11 : 14-06-2005 10:33 » 

Perl не нуждется в компиляции...
С++ нуждается - это конкретика....

Поподробнее можно ответить примерно так.

1.Скажем когда ты пишешь все свои скрипты на С++ то ты должен писать и всю организацию вывода в нужный поток.
В перле и в пхп ничем подобным заморачивать голову не приходится.
2. Не все хостинги дают доступ к шелу, в котором можно запустить свой скрипт на компиляцию.
Не дают доступа к gcc+ и т.д.
Перл и ПХП всегда есть.
Всегда уже настроены.

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

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

ПХП работает чаще всего как модуль Апач и поэтому имеет только один модуль бинарника запущенный на сервере с многопоточной реализацией запросов, что много легче для системы.

А С++ запускает только себя , а не весь язык С++ для выполнения, отсюда менее энергоемкость, и большая производительность...

Записан

А птичку нашу прошу не обижать!!!
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 14-06-2005 15:58 » 

Спасибо за ответы. Уже что-то в голове светлеет Улыбаюсь.
Цитата
Реально как на Си так и на Перле.
А для этого что необходимо? Т.е. я никогда не писал под UNIX, Linux и пр. только под Windows, поэтому я не могу судить чем программирование под *Nix отличается от Windows и вообще чем-то оно отличается или нет.
Мне нужен(?) какой-нибудьт справочник функций под UNIX, типа того, что по WinAPI для того чтобы написать программу, выполняющуюся в фоновом режиме?
Надо-ли мне сильно углубляться в программирование под UNIX?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 14-06-2005 16:55 » 

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

Для ликвидации негативных особенностей CGI существует mod_perl для апача. Он существует не в виде отдельных процессов, а работает в том процессе/потоке апача, который получил HTTP-запрос на обработку. Программа компилируется и код кешируется. Соотв., нет накладных расходов на компиляцию и хранение отдельных работающих копий кода в памяти. Для разных запросов различным остается только динамическая память. Конечно, такая адаптированная система то же имеет изъяны.


nikedeforest, не стоит замарачиваться web-программированием на C++, если конечно это не острая необходимость или обучение.
Ты сам подметил главные негативные особенности C++ - программа зависима от платформы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 14-06-2005 20:45 » 

RXL, предлагаешь Perl учить?
И вопрос такой. Я что-то не понял, по поводу компиляции. Когда пишишь на Перле выкладываешь скрипт, а когда на С++, то что выкладывать-то?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 15-06-2005 09:36 » 

1)Нет - это мой ответ на https://forum.shelek.ru/index.php/topic,6594.msg105549.html#msg105549

2) Бинарник. Потому это и никакие не скрипты, а самые обычные C/C++ программы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 15-06-2005 09:59 » 

Цитата
Бинарник.
ЕХЕшник что-ли? А как его запускать то тогда? Хостинг разрешает исполшьзовать С/С++, специально такой выбирали, немного переплатить пришлось. Получаются они мне разрешать ЕХЕшники запускать. СТОП. Нет. Я ЛАМЕР. Что такое бинарник? Само слово binary я знаю, а в качестве файла, что это. Просто, если это в моем понимании ЕХЕшник, то зачем тогда gcc, да и язык уже не имеет значения?
Блин, мне стыдно, но я прошу ответа.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 15-06-2005 10:14 » 

nikedeforest, см разницу: бинарный и текстовый.
В контексте исполняемых файлов это может быть и exe, и dll, и vxd, и elf (используется в ряде *nix-ов и к расширению не привязан), и т.д..
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 15-06-2005 10:26 » 

RXL, но как мне узнать какой файл мне класть на сервер (хостинг), чтобы  все работало. Как мне можно писать скрипты нс С/С++, работаю на Денвере. Для Перла там все просто, напишите вначале файла в комментариях путь к файлу perl.exe и ваши скрипты будут работать. А что сделать для С/С++ ничего не сказано. И все же, что кидасть на хостинг, чтобы все работало просто гуд.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 15-06-2005 11:18 » 

Еще раз отступлю от темы: термин "скрипт" (script) означает текстовый исполняемый файл, который интерпретируется другой программой, либо компилируется непосредственно перед исполнением. К C++ это не применимо. Конечно, если тебе так хочется называть - наздоровие, но только этим ты вносишь лишнюю путаницу.

Для CGI тебе нужно exe.  Если там стоит IIS, то можно делать программы под ихнее API - там другой принцип используется: программа постоянно работает и последовательно или параллельно (несколько потоков) обрабатывает запросы. Это требует обязательной проверки отсутствия утечек памяти.
С CGI проще: программа стартует в отдельном процессе при получении HTTP-запроса, получает данные заголовка в переменных окружения и общается с клиентом через stdin и stdout. CGI - вешь стандартная - поищи в инете описание, какие переменные обязательно будут и что в них ждать.

Используя perl или php ты получаешь многие вещи автоматом: параметры декодируются и помещаются в соотв. переменные. Кроме того, работа с web - это прежде всего работа с текстами, а как следствие - выделение, изменение размеров и освобождение памяти. В скриптовых языках этим занимается сама среда выполнения. В С++ это ты будешь делать сам.
Кроме того, программа на C++ будет иметь доступ ко всем ресурсам сервера, а это не безопасно.

Рекомендую поставить такой же сервер, какой будет на хостинге, себе на рабочую или домашнюю машину. Лучше еще и той же версии. Вот на нем и производи все тесты и отладки - на хостинг надо выкладывать готовый продукт.
« Последнее редактирование: 15-06-2005 11:24 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 16-06-2005 00:15 » 

RXL, а компилировать-то мне у себя или на сервере хостинга. Просто, на сервере хостинга получаеься более надежнее, но с друой стороны я даже не представляю себе как. Это вообще возможно?
Цитата
Рекомендую поставить такой же сервер, какой будет на хостинге, себе на рабочую или домашнюю машину. Лучше еще и той же версии. Вот на нем и производи все тесты и отладки - на хостинг надо выкладывать готовый продукт.
Понял.
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 16-06-2005 00:17 » 

А литературы по CGI мало. Про Перл много, а вот как на С/С++ практически нет (не только мое мнение).
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 16-06-2005 07:58 » 

Я тее уже описал принцип раоты с CGI. В литературе тебе могут только дать советы чего делать, а чего нет.
Самые основноые советы:
1) все данный пользователя подлежат обязательной проверке на коректность;
2) всегда проверяй длины строк и, соотв., не используй фиксированный буферы - лучше их создавать динамически, когда длина содержимого известна;
3) данные от пользователя могут придти в любой кодировке (проверяй по строке заголовка Content-type) - придется перекодировать в кодировку сервера (точнее в ту, с которой будет раотать твоя программа и в которой будут храниться данные);
4) следствие из п.4: windows-1251 не единственная кодировка на свете и она не универсальна; я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!).

Пока все - остальное потом
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #23 : 16-06-2005 12:04 » 

я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!).

И это правильно! Я акого же мнения.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 16-06-2005 14:36 » 

За это спасибо.
А что без внимание вопрос о компиляции оставили? он на один пост выше.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 16-06-2005 14:52 » 

nikedeforest, никто тебе не даст компилить на сервере - как ты это себе представляешь?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 16-06-2005 16:21 » 

Я никак, мне приятель сказал Улыбаюсь, который в этом тоже ничего не рубит Улыбаюсь, но все таки знает больше меня Улыбаюсь (мне так показалось, по его словам, он как-то пытался этим заняться, но потом забил из-за недостатка литературы).
Это значит, мне надо cygwin поставить наверное. Давно хотел, но все не решался.
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 16-06-2005 19:00 » 

Причем тут cygwin?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 16-06-2005 19:20 » 

А там ведь gcc есть. Я так понял это вообще что-то типа эмулятора UNIX под Windows плюс много вской всячины в подарок. Я не прав?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #29 : 16-06-2005 19:40 » 

Я бы не назвал cygwin "эмулятором Unix" - скорее unix-подобная среда с эмуляцией некоторых ф-ий и набором стандартных unix-утилит. Ну и еще всякое разное. Но выполняется все в Windows.

Как я понял, у тебя на хостинге будет не win?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #30 : 17-06-2005 07:43 » 

Т.е. если не win то cygwin уже не катит? UNIX что-ли ставить?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #31 : 17-06-2005 15:05 » 

nikedeforest, можно под VMware запустить лубую ОС и в любом колличестве одновременно - ограничивает только память.

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

----------------

Чтобы не разводить демогогию дальше, давай по конкретике.

1) какие тех.условия работы на хостинге (это ты у провайдера должен узнать);
2) какая на хостинге ОС, какой web-сервер (если не на win, то вероятно apache) - версии то же полезно знать;
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 17-06-2005 23:30 » 

Буду в тех. поддержку звонить. На сайте я не нашел такой информации Жаль.
Записан

ещё один вопрос ...
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #33 : 18-06-2005 14:30 » 

Цитата
какие тех.условия работы на хостинге
Что за тех. условия?
Записан

ещё один вопрос ...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 19-06-2005 15:03 » 

ТУ (технические условия).
В твоем случае, это условия (правила), выдаваемые хостинг-провайдером, согласно которым ты должен работать с арендуемыми у него ресурсами.
Если тебе разрешают выкладывать бинарные форматы, то ты же должен знать, кто будет компилировать программу - ты, провайдер или он даст тебе поступ к компилятору. Если собирать будешь ты, то тебе неодходимо знать ОС и версии динамических библиотек для сборки (иначе твоя программа может не запустится или сбоить).

Надо знать, за что ты платишь деньги...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 19-06-2005 17:17 » 

Цитата
Надо знать, за что ты платишь деньги...
Узнаю по мере необходимости. Улыбаюсь. На ихнем сайте написано по делу много, но к сожалению не все.
После завтра позвоню в тех. поддержку. Но так боюсь предстать перед ними полным ламером ... Жаль.
Записан

ещё один вопрос ...
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines