process on windows

Machine-specific discussion
Unix, Linux, OS X, OS/2, Windows, ..?
Locked
newdep
Posts: 2038
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

process on windows

Post by newdep »

on Xp ->

This (process "c:/windows/system32/cmd.exe ") does create a directory called .exe in the current directory?? why is that? ;-)


Norman.
-- (define? (Cornflakes))

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

I have no idea what Windows is doing here, but could verify, that the spawnvp() system call is called with the correct parameters. I suppose that ".exe' is some kind of file semaphore.

This does not impact normal usage of 'process', e.g. doing a (process "c:/WINDOWS/system32/notepad.exe")

Lutz

m35
Posts: 171
Joined: Wed Feb 14, 2007 12:54 pm
Location: Carifornia

Post by m35 »

Code: Select all

#!newlisp
(setq _P_WAIT 0)
(setq _P_NOWAIT 1)
(setq _P_OVERLAY 2)

(import "crtdll.dll" "_spawnvp")

;(setq cmd "cmd.exe") ; starts cmd.exe
;(setq cmd "c:/WINDOWS/system32/notepad.exe") ; starts notepad
;(setq cmd "c:\\windows\\system32\\cmd.exe") ; starts cmd.exe
(setq cmd "c:/windows/system32/cmd.exe") ; makes .exe folder

(setq nullarg 0)
(setq pnullarg (address nullarg))

(println (_spawnvp _P_NOWAIT cmd pnullarg))
How very odd...

Edit:

Code: Select all

C:\>c:/windows/system32/cmd.exe

C:\>c:/windows/system32/cmd.exe
A subdirectory or file .exe already exists.
Well at least it's consistent.

newdep
Posts: 2038
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Actualy... why does (process "newlisp") not popup ?
Its started but i dont see it anywhere..


Even stranger:

This works ->
(process "c:\windows\system32\notepad.exe")

But this doesnt ->
(process "c:\program files\newlisp\newlisp.exe")


does the <space> has something to do with this?
-- (define? (Cornflakes))

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

newlisp.exe is a shell application, which doesn't have its own window like notepad.exe. The shell works with std in/out/error of the application running in it.

Lutz

m35
Posts: 171
Joined: Wed Feb 14, 2007 12:54 pm
Location: Carifornia

Post by m35 »

Like Lutz said, it seems that if you start a command-line program from a command-line program, it uses the same console window.

e.g. cmd starting cmd

Code: Select all

C:\>cmd.exe
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>
e.g. newlisp starting newlisp

Code: Select all

> (process "newlisp.exe")
1956
> newLISP v.9.2.0 on Win32, execute 'newlisp -h' for more info.

>
This behavior is consistent with my Ubuntu terminal.

Code: Select all

> (process "newlisp")
5320
> newLISP v.9.1.0 on Linux, execute 'newlisp -h' for more info.

>
At least on windows, if you want to open a command-line program in its own console window, try this.

Code: Select all

(process "cmd.exe /c start cmd.exe")

Locked