我需要处理的情况是:
1,我需要生成一个临时文件(路径和名称是使用GetTempFileName()创建的
。2,使用这个临时文件作为createProcess()的命令行。
代码如下所示:
char * tempFile = GenerateTmpFile (); // self defined function (call GetTempFileName() to get temp file, return temp file path + name , so tempFile looks like c:\temp\x.tmp
char szCmd[1024];
strcpy(szCmd, "child.exe ");
strcat(szCmd, tempFile); // so example of szCmd is: child.exe c:\temp\x.tmp
CreateProcess(NULL,
szCmd,
...
);
但是CreateProcess总是失败,返回错误代码2(2来自GetLastError(),CreateProcess返回0),我认为问题是因为临时文件路径,如果我给
szCmd ="child.exe c:\\temp\\x.tmp"
手动,它工作正常。
有谁知道我如何让 CreateProcess 使用从 getTempFileName() 生成的临时文件路径+名称?
更新:我尝试在路径中添加'\'以使'\'成为双反斜杠,因此路径例如是:
c:\\temp\\x.tmp
它仍然不起作用。
为什么它与使用字符串文字调用 CreateProcess 不同?
CreateProcess(NULL,
"child.exe c:\\temp\\x.tmp",
...);