по Wi32
Я пытаюсь запустить исполняемый файл, который перенаправляет на имя файла (текущая дата), например. так же, как:
Someexecutable.exe> 20101220000000.txt
Когда я делаю это из windows cmd.exe, все работает нормально. Однако, когда я делаю это из моей программы, как показано ниже, система, похоже, не сбрасывает перенаправление, даже если создает файл и / или кажется, что буферизует большой объем данных перед записью на диск.
Я не могу изменить исполняемый файл, который запускается.
Выполняемая программа теперь только записывает в стандартный вывод, но помните, что я не могу изменить это вообще. (Самый простой способ - это просто сделать stdout = filehandle; но я, к сожалению, сейчас для меня невозможен!)
(Не требуется: также программа ожидает как system (), это не требуется, но какой самый простой способ отсоединить программу, запускаемую через system ())
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
char execstr[512];
char s[30];
size_t i;
struct tm tim;
time_t now;
now = time(NULL);
tim = *(localtime(&now));
i = strftime(s,30,"%Y%m%d%H%M",&tim);
sprintf(execstr,"someexecutable.exe > %s.txt",s);
printf("Executing: \"%s\"\n",execstr);
system(execstr);
exit(0);
return 0;
}