arg У меня есть некоторый код:
CreateProcess(L"D:\\prog\\forLb1SPZ.exe",L"D:\\prog\\forLb1SPZ.exe D:\\1.txt",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)
Этот код работает, НО ... файл создается рядом с программой (где написан этот код) и имеет имя "D" - первый символARGV [1].Что не так?
Код в forLb1SPZ.exe
#include "stdafx.h"
#include "iostream"
#include <stdio.h>
#include <math.h>
using namespace std;
int _tmain(int argc, char* argv[])
{
int value;
FILE *Ptr;
Ptr=fopen("argv[1]","w");
for(int i=0;i<20000;i++){
value=rand();
fprintf(Ptr,"%d i=%d \n",value,i);
}
fclose(Ptr);
return 0;
}
Код в lab2SPZ.exe (основная программа)
#include "stdafx.h"
#include "iostream"
#include <windows.h>
#include <stdio.h>
using namespace std;
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(L"D:\\forLb1SPZ.exe","D:\\forLb1SPZ.exe D:\\1.txt",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{printf( "creating fail\n");system("pause");return 0;}
printf("handle: %X\n", pi.hProcess);
WaitForSingleObject( pi.hProcess, INFINITE );
system("pause");
return 0;
}