cgi на ассемблере в unix

Тема в разделе "WASM.BEGINNERS", создана пользователем stellaco, 16 дек 2008.

  1. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Как принять CGI приложением (на ассемблере) Данные из html формы, переданные методом POST ?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    stellaco смотри внимательнее, на форуме есть ветка WASM.UNIX
     
  3. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Mikl___
    Смотрел внимательно.
    Так и не нашёл того, что нужно...
    потому спрашиваю тут
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    stellaco используй поиск
    подожди, ответят...
     
  5. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    getenv() наверное...
     
  6. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Это как раз GET :)))

    А POST - это чтение STDIN
     
  7. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    делал чтение из стндартного ввода.....ничего не принялось))).....
    вопрос оч актуален кстати).
    помогите.
     
  8. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Ты, случаем, stdin и stdout не перепутал?
     
  9. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    SadKo
    если stdin имеет файловый дескриптор 0
    stdout дескриптор 1
    ..
    то не перепутал

    а так, если можно, напишите рбочий пример
     
  10. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Сначала проверь- приходят вообще скрипту POST данные или нет.
    Например, замени его на php скрипт и прими данные им.
    Т.к. POST данные сначала Полностью принимаются httpd, и только потом, если все передано правильно (Все необходимые заголовки заполнены и заполнены правильно), передаются принимающему скрипту.
     
  11. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Всё настроено правильно.
    Переписывать скрипт на php нет необходимости, так как сайт сделланный полностью на php работает без каких либо проблем)..и все данные конечно же приходят.

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

    И немного от темы отойду, проснулся сегодня с такой мыслью. В линексе нет форматов файлов, значит в файлы пишутся только определённые байты. А потом просматриваются через разные программы, которые правильно понимают эти последовательности. Так вот, если сделать приложение, которое работает с записанными данными через блокноты(записывает данные к примеру через write и lseek). Организует доступ к нужным элементам из блокнотика. И записывает данные построчно. И они будут записанны примерно так.
    stellaco:123:wasm:cassum:564
    Доступ к таким данным будет осуществляться быстрей? чем к примеру..из реляционной БД ? (примерное колличество обрабатываемых строк...миллионы)
     
  12. perez

    perez Member

    Публикаций:
    0
    Регистрация:
    25 апр 2005
    Сообщения:
    502
    Адрес:
    Moscow city
    В линексе нет форматов файлов - ужос.
    оступ к таким данным будет осуществляться быстрей? чем к примеру..из реляционной БД ? -
    смотря какой доступ. Считать с диска в память - быстро. Обработка миллионов строк (поиск, сортировка, выборка по критериям) - определенно медленней (если, конечно не будешь сам реализовывать свой двиг бд с индексами).

    P.S. Юзай sqlite для подобных целей.
     
  13. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    А насчёт CGI, неужели никто не пробовал делать?
     
  14. prog

    prog New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2003
    Сообщения:
    62
    Адрес:
    Russia
    Это известный вопрос.
    Если нужно записывать-считывать несколько десятков строк, то, естественно, можно сделать это самому с пом. доступа к файлу.
    Если нужно искать в нескольких десятках строках- можно тоже самому.
    Если данных- несколько сотен или сотен тысяч- для этого придуманы БД, точнее- можно тоже самому, но придется придумывать всякие хитрости для того, чтобы все это работало быстро, и в результате ты сделаешь еще одну СУБД.
    В БД применяются хранение последних даных в памяти, индексация данных для убыстрения поиска, при чем индексация разными хитрыми алгоритмами, итд.
    В основном, задачи- быстро записать, быстро считать, быстро найти.
    Первые две- есть толко два варианта- в память и на диск. Если в память, то придется придумывать защиту от пропажи данных в случае перезагузки сервера итд. Если на диск- тут все зависит от тебя- можно каждую запись в отдельный файл записывать, все в один файл, или оптимимизированны (минимизированные) данные в один файл.
    Oracle же тоже заптисывает в файл (после записи в RAM).
    А по поиску- надо или придумывать свои алгоритмы оптимизации поиска данных или использовать существующие СУБД.

    Если строк- миллионы, как ты сказал, то, тебе или нужно писать свой дижок БД, или использовать существующие.
    В зависимости от твоих условий может получиться, что ты напишешь более оптимальный конкретно для твоей задачи движок, чем самые крутые и дорогие на сегоняшний день на планете, т.к. все они в основном универсальные.
     
  15. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Как все просто у линуксоидов... Зачем интересно делают для хранения баз даже отдельные разделы со своей ФС?
     
  16. perez

    perez Member

    Публикаций:
    0
    Регистрация:
    25 апр 2005
    Сообщения:
    502
    Адрес:
    Moscow city
    Не поленился, проверил (правда на сях, но принцип тот же - принимаю из стдин).

    Html старица:

    Код (Text):
    1. <html>
    2. <body>
    3. <form METHOD="POST" action='http://192.168.1.38/cgi-bin/a.out'>
    4. <INPUT type='submit' VALUE='OK!' NAME = 'test_data'>
    5. </form>
    6. </body>
    7. </html>
    Код на сях:

    Код (Text):
    1. #include <stdio.h>
    2. int main()
    3. {
    4.         printf("Content-type: text/html\n\n");
    5.  
    6.         char buffer[1024];
    7.         scanf("%s", buffer);
    8.         printf(buffer);
    9.         return 0;
    10. }
    Результат в браузере после нажатия кнопки:

    Код (Text):
    1. test_data=OK
    P.S. Сдается мне, ты в своих тестах забываешь
    Код (Text):
    1. printf("Content-type: text/html\n\n");
    и не видишь результатов.
     
  17. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    prog
    Спасибо за ответ.
    Можете посоветовать книгу по созданию БД ?
     
  18. perez

    perez Member

    Публикаций:
    0
    Регистрация:
    25 апр 2005
    Сообщения:
    502
    Адрес:
    Moscow city
    Всмысле? Язык SQL чтоли?
    Если ноль в бд - единственное, что могу посоветовать - поизучать язык SQL.
    В инете немеряно инфы.

    На какой бд учиться и тестировать?
    1) MYSQL - удобно, просто. Но есть одно но. Есть сильные отклонения от стандарта sql. Но учиться можно. Бесплатна в некоммерческих целях.
    2) SQLITE - встраиваемый движок бд в приложение. Удобно, когда не нужна архитектура клиент - сервер.
    3) PostgreSQL - моя любимая. Сложнее ставить и админить, чем mysql. Но зато мощнее и интереснее.
     
  19. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    perez

    Сейчас подключу Linex (переподкл хард) и напишу пример кода.
     
  20. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Хех )
    Кого не спрашиваю..все отвечают тоже самое.
    Но меня интересует)... как делать базы данных... НЕ SQL запросы....и НЕ проектирование БД наподобии...клиент, адресс, заказы.
    Интересует именно! как делать БД..которая сама имеет собственный интерпретатор SQL, которая сама записывает данные на диск и в ром, которая имеет свои алгоритмы выборки и тд... Аля , как сделали эти самые MYSQL, SQLITE,PostgreSQL