МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Вихідний текст програми CGI store.exeВихідний текст програми CGI store.exe дуже простий і показаний у лістингу 9. Лістинг 9. Файл store.c #include <windows.h>#include <tchar.h>#include <wchar.h>#include <stdio.h>#include <stdlib.h>#include <string.h>void main(int argc, char *argv[]){ int nInDatasize; char * szMethod; char szBuf[2000]; FILE *fDatabase; CRITICAL_SECTION csAddRecord; szMethod = getenv("REQUEST_METHOD"); if(!strcmp(szMethod, "POST")); { nInDatasize = atoi(getenv("CONTENT_LENGTH")); fread(szBuf, nInDatasize, 1, stdin); szBuf[nInDatasize] = '\0'; InitializeCriticalSection(&csAddRecord); EnterCriticalSection(&csAddRecord); fDatabase = fopen("c:\\EMAIL.DAT", "a+"); if(fDatabase != NULL) { fputs(szBuf, fDatabase); fclose(fDatabase); } LeaveCriticalSection(&csAddRecord); DeleteCriticalSection(&csAddRecord); printf( " Content-type: text/plain\r\n\r\n"); printf("Stored information: %s", szBuf); }}Цей текст підготовлений для роботи в середовищі Windows 95 або Windows NT, тому що для синхронізації доступу до файлу ми використовували специфічні для цих операційних систем функції роботи із критичними секціями. Свою роботу програма CGI починає з аналізу змінного середовища REQUEST_METHOD. Переконавшись, що при запуску програми їй передали дані методом POST, програма визначає розмір цих даних виходячи із умісту змінного середовища CONTENT_LENGTH. Далі програма зчитує відповідну кількість байт даних зі стандартного потоку вводу, записує їх у файл. Потім, після додавання заголовка "Stored information:", програма CGI записує отриманий рядок у стандартний вихідний потік, передаючи її в такий спосіб аплету Form. Тому що при реальній роботі в мережі Internet вашу програму CGI можуть одночасно запустити трохи користувачів, для синхронізації відновлення файлу бази даних ми застосували критичну секцію. У результаті з файлом може працювати в будь-який момент часу тільки одна копія програми CGI. Ще одне зауваження стосується шляху до файлу, що у нашім випадку створюється в кореневому каталозі диска C:. При установці програми CGI на сервер вам необхідно забезпечити доступ на запис до каталогу, у якому розташовується файл, для вилучених користувачів. Про те, як це зробити, ви можете довідатися з документації на ваш сервер Web.
Завдання: На основі теоретичних відомостей приведених вище та в лекціях 17, 18, створити автономні додатки Java, які працюють із файлами й створюють мережні додатки.
|
||||||||
|