Я нашел http://support.zeus.com/zws/examples/2005/12/16/hello_world_in_perl_and_c, и эти два примера работают.
Сейчас я пробовал это для Ады и не могу сделать это уже 2 дня.
fcgi_stdio.ads
with Interfaces.C;
with Interfaces.C.Strings;
package fcgi_stdio is
function FCGI_Accept return Interfaces.C.int;
pragma Import (C, FCGI_Accept, "FCGI_Accept");
procedure FCGI_printf (str : Interfaces.C.Strings.chars_ptr);
pragma Import (C, FCGI_printf, "FCGI_printf");
end fcgi_stdio;
test.adb
with fcgi_stdio;
with Interfaces.C;
with Interfaces.C.Strings;
procedure Test is
begin
while Integer (fcgi_stdio.FCGI_Accept) >= 0 loop
fcgi_stdio.FCGI_printf (Interfaces.C.Strings.New_String ("Content-Type: text/plain" & ASCII.LF & ASCII.LF));
fcgi_stdio.FCGI_printf (Interfaces.C.Strings.New_String ("Hello World from Ada!" & ASCII.LF));
end loop;
end Test;
Когда я запускаю его в консоли, я получаю следующую ошибку:
$ ./test
raised STORAGE_ERROR : stack overflow or erroneous memory access
Apache error_log показывает:
Premature end of script headers: test
Кто-нибудь знает, как я могу заставить его работать?