Я пытаюсь написать CGI-скрипт на c ++, который печатает обратный сетевой путь (используя
traceroute) с веб-сервера на IP-адрес клиента, вызывающего сценарий CGI.
Когда я запускаю программу в Visual Studio, она работает нормально (создает процесс, печатает результат в файл "C: /result.out", открывает файл, печатает каждую строку из файла, закрывает файл) НО после компиляции и пытаясь запустить только свой файл .exe, он выбрасывает исключение. Что я могу сделать, чтобы заставить работать .exe?
Как примечание, я использую Windows XP и Visual C ++ 2008
Вот код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <process.h>
#include <conio.h>
int main()
{
char *line, *command, *userIp;
printf("Content-Type:text/html\n\n");
printf("<html><head></head><br/>");
printf("<body><br/>");
line = (char*)malloc(255*sizeof(char));
command = (char*)malloc(10*sizeof(char));
userIp = (char*)malloc(30*sizeof(char));
//userIp = getenv("REMOTE_ADDR"); // use a default IP until program works
strcpy(command,"tracert ");
strcpy(userIp,"74.125.87.104");
strcat(command,userIp);
strcat(command," > C:/result.out");
// create command "tracert 74.125.87.104 > C:/result.out"
printf("%s",command);
system(command);
FILE *f;
f = fopen("C:/result.out","r"); // open C:/result.out and read line - by - line
strcpy(line,"");
while(!feof(f)){
fgets(line,255,f);
printf("%s\n",line);
}
fclose(f);
printf("<br/>Test running OK<br/>");
printf("</body></html>");
getch();
return 0;
}