Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2013, 17:21   #1
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Ваяю http сервер из сокетов беркли на си, хочу на нём cgi сишные потестить, тока не доконца понимаю, как сервер получает вывод CGI программы и как CGI программа принимает параметры. Наставте.

Перенаправление стандартного вывода ето то?

Листинг сервера:
Код:
#include <stdio.h>
#include <stdlib.h>


int main(void){
	system("\"/home/Рабочий стол/cgi\" > 1.txt");
	
	return 0;
}
Листинг CGI:
Код:
#include <stdio.h>
#include <stdlib.h>


int main(void){
	printf("I am a CGI!");
	
	return 0;
}
И как юзать переменные среды и нужно ли их юзать?
do not use your brain

Последний раз редактировалось Stilet; 31.08.2013 в 20:27.
Кащей вне форума Ответить с цитированием
Старый 31.08.2013, 20:28   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Ну, перенаправление то, только пернаправляю не в файл а делается pipe
waleri вне форума Ответить с цитированием
Старый 31.08.2013, 20:29   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
как сервер получает вывод CGI программы
Если не ошибаюсь стандартный CGI выводит в STDOUT, который сервером считывается. Как? Ну через пайпы например. Или может быть еще какой способ, я пайпы юзаю.
Цитата:
как юзать переменные среды
Если память не подводит они передаются CGI через STDIN. Насчет нужно или нет это тебе решать как разработчику.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2013, 20:29   #4
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

А подробности(кто такие пайпы или хотябы где читать(википедию уже читаю))?

эмм...чот мозг кипит уже читать, покажите на примерах.
do not use your brain

Последний раз редактировалось Stilet; 31.08.2013 в 22:42.
Кащей вне форума Ответить с цитированием
Старый 31.08.2013, 22:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

http://yandex.ua/yandsearch?text=C%2...oc=10&lr=20554
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2013, 22:56   #6
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Ну так нечто подобное я уже битый час читаю, непонятно как в процессах пайпы юзаются(про потоки примеров много).
do not use your brain

Последний раз редактировалось Кащей; 31.08.2013 в 23:00.
Кащей вне форума Ответить с цитированием
Старый 31.08.2013, 23:09   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

У меня только на Делфи пример есть.
Но если хорошо поискать: http://yandex.ua/yandsearch?text=C%2...oc=10&lr=20554
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2013, 00:39   #8
asmprog
Пользователь
 
Регистрация: 10.08.2013
Сообщений: 67
По умолчанию

перенаправление - это dup2, как здесь, только с сокетами http://stackoverflow.com/questions/3...up2-for-piping

Цитата:
и как CGI программа принимает параметры
через переменные среды, а как она их сама парсит(надеюсь, это не станет шоком - это же не PHP) - это ее дело. список переменных, которые должен обеспечить сервер, можно хоть здесь взять http://www.cgi101.com/book/ch3/text.html
asmprog вне форума Ответить с цитированием
Старый 01.09.2013, 01:15   #9
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
перенаправление - это dup2, как здесь, только с сокетами
Ясности это не внесло, я увидел тот же пример с форками. CGI ведь не аналог форка?
Цитата:
через переменные среды, а как она их сама парсит(надеюсь, это не станет шоком - это же не PHP) - это ее дело. список переменных, которые должен обеспечить сервер, можно хоть здесь взять
Для меня шок само наличие этих переменных и отсутствие доходчивой информации о них. Повсюду нарисовано как их пользовать, но неувидел я что они и зачем, а так же как их брать и где и т.д.
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 01.09.2013, 03:42   #10
asmprog
Пользователь
 
Регистрация: 10.08.2013
Сообщений: 67
По умолчанию

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

Цитата:
Ясности это не внесло, я увидел тот же пример с форками.
а grep`нуть системные хидеры на dup2? или хотя бы загуглить для чего используется ф-ция, которая на самом деле syscall? а вспомнить, что в unix(-like) практически все представлено файлами(включая сокеты)?

а что такое CGI можно почитать хоть в русской wiki http://ru.wikipedia.org/wiki/CGI
там же есть ссылка на RFC, где доходчиво написано обо всех этих переменных.

вы бы хоть основы потрудились узнать, а то устроили тут сказку "...хочу того, не знаю чего..."
asmprog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTTP Сервер Dkey Помощь студентам 1 01.07.2012 08:25
http server,http сервер, проблемы с post реализация на java snajper_ro Общие вопросы по Java, Java SE, Kotlin 1 23.10.2011 14:25
http-сервер LimanSSk Свободное общение 1 02.03.2009 15:16
http сервер mar4elo Работа с сетью в Delphi 6 12.01.2009 13:11
создание cgi для сохранения на сервере exe файла преданного через http L0rD Работа с сетью в Delphi 2 22.06.2007 12:52