155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||
1 | ||||||
FreeBSD пример cgi31.12.2011, 06:57. Показов 1312. Ответов 8
Метки нет (Все метки)
Необходимо чтобы этот простейший cgi скрипт,
заработал на сервере где установлена ОС FreeBSD. Желательно использовать FASM!
0
|
31.12.2011, 06:57 | |
Ответы с готовыми решениями:
8
не запускаеться (CGI вместе с MySQL) под Apache: Premature end of script headers: c:/www/cgi-bin/catalog.cgi пример использование exec (ping) на FreeBSD Запуск CGI вне cgi-bin и запуск index.cgi Ошибка 500 cgi, нужно запустить батник через cgi |
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
31.12.2011, 14:02 | 2 |
FreeBSD не будет исполнять код сделанный под Windows Мне казалось что это очевидно всем кто пишет на асме
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
||||||
31.12.2011, 14:16 [ТС] | 3 | |||||
Мне это известно.
Необходимо узнать какой формат файла задавать, и какие функции ОС FreeBSD вызывать для исполнения программы. Добавлено через 8 минут К примеру пробовал так ошибка 500!
0
|
31.12.2011, 14:26 | 4 |
За основу можешь взять линуксовый пример : Есть ли в нотации AT&T аналог dos-овского прерывания 02h?
Только нужно узнать интерфейс системных вызовов для free bsd. Либо ищешь документацию, либо создаёшь пример на Си с вызовами write и exit, компиляешь, дизассемблируешь Добавлено через 1 минуту Ну и на всякий случай символы \r (с кодом 10) надо убрать, потому что под юникс-системами перевод строк осуществляется только в один символ. По идее http-сервер это должен рулить, но мало ли что
1
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
|
01.01.2012, 00:25 [ТС] | 5 |
Evg! Благодарю буду пробовать.
По поводу, что HTTP сервер должен сам обрабатывать переход на другую строку. Вроде в ОС FreeBSD как и в Windows, вывод осуществляется до завершающего символа `0`.
0
|
01.01.2012, 00:36 | 6 |
Фишка не в нуле. А в том, что заголовок и документ отправляются одним запросом. При этом первые два подряд идущих перевода строки трактуются как граница между заголовком и документом
С новым годом!
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
|
01.01.2012, 08:41 [ТС] | 7 |
С наступившим новым годом.
Всё верно первые два подряд идущих перевода строки трактуются как граница между заголовком и документом, а всё остальное выводятся в браузер до завершающего символа `0`. Кактотак.
0
|
01.01.2012, 12:37 | 8 |
У тебя cgi, а потому речь идёт о серверной стороне, а не о браузере. В случае использования системного вызова write (или любого другого механизма НИЗКОГО уровня) твоё утверждение неверно. Будет послано столько байтов, сколько указано в параметре, отвечающем за длину печатаемого фрагмента. Затем соединение будет закрыто. И никаких хвостовых нулей никто не учитывает (со стороны сервера). Точно так же на стороне браузера закрытие соединения (EOF) будет трактоваться как конец документа. Ну либо если прислано 100 килобайт, а на середине этого документа встретился байт с кодом 0, то реальным концом документа будет считаться отметка 50 килобайт, а весь хвост будет проигнорирован. Последнее справедливо в том случае, если действительно браузер трактует 0 как конец (я не знаю, так ли это на самом деле)
Ну а в твоём первом примере ты использовал функцию printf (т.е. механизм ВЫСОКОГО уровня, в котором есть соглашение, что строка заканчивается нулевым символом), а потому та критично наличие нуля на конце. В противном случае printf начнёт печатать дальнейший мусор из памяти, лежащий за твоими данными, до тех пор, пока не наткнётся на нулевой байт. Низкоуровневым механизмам чихать на этот завершающий ноль, они работают исключительно на основании размера буфера
0
|
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,784
|
|
01.01.2012, 15:24 [ТС] | 9 |
Согласен. Но на болле низкий уровень передаётся размер буфера для вывода, а определяется он по заверщающему символу. Если я буду делать вывод непосредственно через системные вызовы то соответсвенно буду сам подсчитывать размер данных.
0
|
01.01.2012, 15:24 | |
01.01.2012, 15:24 | |
Помогаю со студенческими работами здесь
9
Perl + SSI = ошибка invalid CGI ref 'http://сервер/cgi-bin/view_bag.pl' in .... При попытке отправить данные формы открывается страница с сообщением: 'The requested method POST is not allowed for the URL /cgi-bin/script.cgi.' Пользователь в инпуте пишет пример на сложение, например, 5+2. Внизу в виде картинок с этими цифрами вывести пример Как записать пример в Maxima? Пример внутри CGI и С++ CGI и C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |