* Arjen Markus <
arjen.m...@gmail.com>
This seems to originate (tcl 8.6.9) in
generic/tclPipe.c:838: "couldn't create error file for command: %s",
/*
* Set up the standard error output sink for the pipeline, if
* requested. Use a temporary file which is opened, then deleted.
* Could potentially just use pipe, but if it filled up it could
* cause the pipeline to deadlock: we'd be waiting for processes
* to complete before reading stderr, and processes couldn't
* complete because stderr was backed up.
*/
errorFile = TclpCreateTempFile(NULL);
if (errorFile == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"couldn't create error file for command: %s",
Tcl_PosixError(interp)));
goto error;
}
*errFilePtr = errorFile;
So the question is why TclpCreateTempFile(NULL) fails.
On Windows, this is win/tclWinPipe.c:650:TclpCreateTempFile, which can
fail in this context for several reasons:
- static int TempFileName() fails (MAX_PATH, permissions etc)
- windows API CreateFile() fails (MAX_PATH, permissions etc)
- TclFile TclWinMakeFile() fails (not possible, see code)
Is length of your path env(TMP) close to MAX_PATH?
Can you recompile and run TCL to have diagnostic output in those places?
HTH
R'