| 
			| 
					
						| nikedeforest | 
								|  | «  : 30-05-2005 19:32 »  |  | 
 
 Хотелось бы многое узнать о С++ скриптах. Во-первых, посоветуйте литературу для начинающего в использование С++ в качестве скрипта и о написании их. И если несложно напишите, часто - ли вы применяете такие скрипты и в каких целях. зы: в данном вопросе полный ламер (но С++ знаю), т.е. я даже не представляю в каком виде хранятся эти скрипты, как они запускаются, функционирует, возможно-ли взаимодействие с ПХП и пр., т.е. любая верная информация будет полезна, но желательно ближе к делу.   |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #1 : 30-05-2005 19:47 »  |  | 
 
 nikedeforest Если ты имееш ввиду CGI,  то почитай здесь http://www.firststeps.ru/cgi/cgi1.html Насколько я понял по ихним объяснениям, это простая программа. Весь ввод-вывод ведется через потоки данных. |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #2 : 30-05-2005 20:15 »  |  | 
 
 Дя, я имею ввиду CGI. Спасибо Finch,  и как я мог забыть про firststep.ru??? |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #3 : 30-05-2005 20:50 »  |  | 
 
 nikedeforest, скриптами считаются интерпетируемые или компилируемые перед исполнением текстовые файлы. "С" - компилируют заранее.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #4 : 31-05-2005 11:49 »  |  | 
 
 Пока вчитываюсь на firststeps, попозже может вопросы будут. Но пока один, из разряда зачем и почему. Прочитав пару уроков, я увидел большое сходство CGI-скриптов и ПХП (методы передачи данных к примеру (Get POST)). Я не пойму, они все реализуют одну и ту же задачу что-ли? Есть -ли смысл применять С в качестве CGI-скрипта? И, если несложно, приведите пример того, что можно сделать с помощью С и нельзя с помощью ПХП, а то на firststeps приводят пример гостевой книги, которая и на ПХП получается нормально. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| Finch 
								СпокойныйАдминистратор    Offline 
								Пол:    
								Пролетал мимо
								
								
								
								
								
							 | 
								|  | « Ответ #5 : 31-05-2005 11:59 »  |  | 
 
 nikedeforest С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно. Также я видел книжку, как написать CGI на Delppi. Но сразу встает вопрос времени. ПХП, PHP заточены именно на этом, многие рутинные веши уже сделаны. Остается только твой творческий полет. PHP  и ПХП насколько я знаю, это интерпритаторы (но могу ошибаться). CGI это уже откомпилированная программа.  |  
						| 
								|  |  
								|  |  Записан | 
 
 Не будите спашяго дракона.              Джаффар (Коша) |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #6 : 31-05-2005 12:24 »  |  | 
 
 Finch, PHP  и ПХП - это одно и тоже   . С/C++ Это универсальный язык. В принципе на нем сварганить хоть что можно
 ЗОЛОТЫЕ СЛОВА. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #7 : 13-06-2005 13:19 »  |  | 
 
 Народ, объясните мне. Не модно что-ли сейчас использовать С++ в CGI-скриптах. Все используют ПЕРЛ. Неужели С++ уступает ПЕРЛ в чем-то?Вопрос №2: А реально написать скрипт, который бы все время выполнялся в фоновом режиме? Кажется по другому это дело ДЕМОН называется.
 На firststeps.ru че-то маловато по СGI скриптам, так сказать введение.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| Chaa | 
								|  | « Ответ #8 : 14-06-2005 03:56 »  |  | 
 
 Почему Perl или PHP - потому, что примерно на порядок проще.Используют ли C/C++ - да, Яндекс, например. Потому, что очень большие нагрузки и производительность критична.
 Если не хватает функциональности, например, PHP, то лучше всего написать свое расширение к PHP (PHP-extension).
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #9 : 14-06-2005 09:00 »  |  | 
 
 Спасибо, успокоил   .  Вопрос №2 в силе. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #10 : 14-06-2005 09:19 »  |  | 
 
 Реально как на Си так и на Перле.Только ПХП для этого не годится
 |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| Гром 
								Птычк. Тьфу, птычник... Вот! 
								Готовлюсь к пенсии
								
								    Offline 
								Пол:   
								Бодрый птах
								
								
								
								
								
							 | 
								|  | « Ответ #11 : 14-06-2005 10:33 »  |  | 
 
 Perl не нуждется в компиляции...С++ нуждается - это конкретика....
 
 Поподробнее можно ответить примерно так.
 
 1.Скажем когда ты пишешь все свои скрипты на С++ то ты должен писать и всю организацию вывода в нужный поток.
 В перле и в пхп ничем подобным заморачивать голову не приходится.
 2. Не все хостинги дают доступ к шелу, в котором можно запустить свой скрипт на компиляцию.
 Не дают доступа к gcc+ и т.д.
 Перл и ПХП всегда есть.
 Всегда уже настроены.
 
 Поэтому большинство скриптов пищется на таких языках.
 
 Когда речь встает о быстродействии вспоминаем, что для выполнения программы скрипта при запросе Перл строит для каждого отдельный экземпляр своего бинарника (загребает память и быстродействие у сервера) и тогда только выполняет, поэтому чаще всего Перл более энергоемкий.
 
 ПХП работает чаще всего как модуль Апач и поэтому имеет только один модуль бинарника запущенный на сервере с многопоточной реализацией запросов, что много легче для системы.
 
 А С++ запускает только себя , а не весь язык С++ для выполнения, отсюда менее энергоемкость, и большая производительность...
 
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 А птичку нашу прошу не обижать!!! |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #12 : 14-06-2005 15:58 »  |  | 
 
 Спасибо за ответы. Уже что-то в голове светлеет   . Реально как на Си так и на Перле.
 А для этого что необходимо? Т.е. я никогда не писал под UNIX, Linux и пр. только под Windows, поэтому я не могу судить чем программирование под *Nix отличается от Windows и вообще чем-то оно отличается или нет. Мне нужен(?) какой-нибудьт справочник функций под UNIX, типа того, что по WinAPI для того чтобы написать программу, выполняющуюся в фоновом режиме? Надо-ли мне сильно углубляться в программирование под UNIX? |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #13 : 14-06-2005 16:55 »  |  | 
 
 Перл компилит свои программы перед выполнением - этим и объясняется его скорость выполнения. Причем программы можно скомпилить предварительно в байт-код, компилиреумый перед выполнением тем же перлом, или непосредственно в родной для системы исполняемый формат.
 Для ликвидации негативных особенностей CGI существует mod_perl для апача. Он существует не в виде отдельных процессов, а работает в том процессе/потоке апача, который получил HTTP-запрос на обработку. Программа компилируется и код кешируется. Соотв., нет накладных расходов на компиляцию и хранение отдельных работающих копий кода в памяти. Для разных запросов различным остается только динамическая память. Конечно, такая адаптированная система то же имеет изъяны.
 
 
 nikedeforest, не стоит замарачиваться web-программированием на C++, если конечно это не острая необходимость или обучение.
 Ты сам подметил главные негативные особенности C++ - программа зависима от платформы.
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #14 : 14-06-2005 20:45 »  |  | 
 
 RXL, предлагаешь Perl учить?И вопрос такой. Я что-то не понял, по поводу компиляции. Когда пишишь на Перле выкладываешь скрипт, а когда на С++, то что выкладывать-то?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	|  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #16 : 15-06-2005 09:59 »  |  | 
 
  Бинарник.
 ЕХЕшник что-ли? А как его запускать то тогда? Хостинг разрешает исполшьзовать С/С++, специально такой выбирали, немного переплатить пришлось. Получаются они мне разрешать ЕХЕшники запускать. СТОП. Нет. Я ЛАМЕР. Что такое бинарник? Само слово binary я знаю, а в качестве файла, что это. Просто, если это в моем понимании ЕХЕшник, то зачем тогда gcc, да и язык уже не имеет значения? Блин, мне стыдно, но я прошу ответа. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #17 : 15-06-2005 10:14 »  |  | 
 
 nikedeforest, см разницу: бинарный и текстовый.В контексте исполняемых файлов это может быть и exe, и dll, и vxd, и elf (используется в ряде *nix-ов и к расширению не привязан), и т.д..
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #18 : 15-06-2005 10:26 »  |  | 
 
 RXL, но как мне узнать какой файл мне класть на сервер (хостинг), чтобы  все работало. Как мне можно писать скрипты нс С/С++, работаю на Денвере. Для Перла там все просто, напишите вначале файла в комментариях путь к файлу perl.exe и ваши скрипты будут работать. А что сделать для С/С++ ничего не сказано. И все же, что кидасть на хостинг, чтобы все работало просто гуд.  |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #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 | 
								|  | « Ответ #20 : 16-06-2005 00:15 »  |  | 
 
 RXL, а компилировать-то мне у себя или на сервере хостинга. Просто, на сервере хостинга получаеься более надежнее, но с друой стороны я даже не представляю себе как. Это вообще возможно? Рекомендую поставить такой же сервер, какой будет на хостинге, себе на рабочую или домашнюю машину. Лучше еще и той же версии. Вот на нем и производи все тесты и отладки - на хостинг надо выкладывать готовый продукт.
 Понял. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #21 :  16-06-2005 00:17 »   |  | 
 
 А литературы по CGI мало. Про Перл много, а вот как на С/С++ практически нет (не только мое мнение). |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #22 : 16-06-2005 07:58 »  |  | 
 
 Я тее уже описал принцип раоты с CGI. В литературе тебе могут только дать советы чего делать, а чего нет.Самые основноые советы:
 1) все данный пользователя подлежат обязательной проверке на коректность;
 2) всегда проверяй длины строк и, соотв., не используй фиксированный буферы - лучше их создавать динамически, когда длина содержимого известна;
 3) данные от пользователя могут придти в любой кодировке (проверяй по строке заголовка Content-type) - придется перекодировать в кодировку сервера (точнее в ту, с которой будет раотать твоя программа и в которой будут храниться данные);
 4) следствие из п.4: windows-1251 не единственная кодировка на свете и она не универсальна; я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!).
 
 Пока все - остальное потом
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| MOPO3 
								Ай да дэдушка! Вах...Команда клуба    Offline 
								Пол:   
								Холадна аднака!
								
								
								
								
								
								   | 
								|  | « Ответ #23 : 16-06-2005 12:04 »  |  | 
 
 я постепенно прихожу к мнению, что правильнее использовать utf-8 (unicode, но не 16 бит!). И это правильно! Я акого же мнения. |  
						| 
								|  |  
								|  |  Записан | 
 
 MCP, MCAD, MCTS:Win, MCTS:Web |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #24 : 16-06-2005 14:36 »  |  | 
 
 За это спасибо.А что без внимание вопрос о компиляции оставили? он на один пост выше.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #25 : 16-06-2005 14:52 »  |  | 
 
 nikedeforest, никто тебе не даст компилить на сервере - как ты это себе представляешь? |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #26 : 16-06-2005 16:21 »  |  | 
 
 Я никак, мне приятель сказал   , который в этом тоже ничего не рубит   , но все таки знает больше меня    (мне так показалось, по его словам, он как-то пытался этим заняться, но потом забил из-за недостатка литературы). Это значит, мне надо cygwin поставить наверное. Давно хотел, но все не решался. |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #27 : 16-06-2005 19:00 »  |  | 
 
 Причем тут cygwin? |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| nikedeforest | 
								|  | « Ответ #28 : 16-06-2005 19:20 »  |  | 
 
 А там ведь gcc есть. Я так понял это вообще что-то типа эмулятора UNIX под Windows плюс много вской всячины в подарок. Я не прав?  |  
						| 
								|  |  
								|  |  Записан | 
 
 ещё один вопрос ... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #29 : 16-06-2005 19:40 »  |  | 
 
 Я бы не назвал cygwin "эмулятором Unix" - скорее unix-подобная среда с эмуляцией некоторых ф-ий и набором стандартных unix-утилит. Ну и еще всякое разное. Но выполняется все в Windows.
 Как я понял, у тебя на хостинге будет не win?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	|  |