/[cvs]/joko/Uni/BSArch/03/win32/min_shell.c
ViewVC logotype

Contents of /joko/Uni/BSArch/03/win32/min_shell.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations)
Thu Jun 15 13:21:05 2006 UTC (18 years, 3 months ago) by joko
Branch: MAIN
Changes since 1.2: +32 -1 lines
File MIME type: text/plain
+ execution in background via WaitForSingleObject
+ error checking and printing

1 /* $Id: min_shell.c,v 1.2 2006/06/15 12:41:05 joko Exp $ */
2
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <errno.h>
6 #include <windows.h>
7
8 #define BOOL int
9 #define TRUE 1
10 #define FALSE 0
11
12 int main(int argc, char * argv[]) {
13 if (argc == 1) {
14 //printf("No arguments given.");
15 //exit(EXIT_FAILURE);
16 char filename[255] = "abc\0";
17 BOOL background = 0;
18 start_process(filename, background);
19 }
20 }
21
22 BOOL start_process(char *filename[], BOOL background) {
23
24 STARTUPINFO si;
25 PROCESS_INFORMATION pi;
26
27 ZeroMemory(&si,sizeof(si));
28 si.cb=sizeof(STARTUPINFO);
29
30 ZeroMemory(&pi,sizeof(pi));
31 //pi.cb=sizeof(PROCESS_INFORMATION);
32
33 CreateProcess(
34 NULL, "notepad.exe",
35 NULL, NULL, FALSE, 0,
36 NULL, NULL,
37 &si,
38 &pi
39 );
40
41 if (!background) {
42 long status;
43 status = WaitForSingleObject(pi.hProcess, INFINITE);
44 if (status == WAIT_FAILED) {
45 check_alert_error("WaitForSingleObject");
46 }
47 }
48
49 }
50
51 check_alert_error(char *error_source[]) {
52 DWORD dwError = GetLastError();
53
54 HLOCAL hlocal = NULL;
55
56 BOOL fOk = FormatMessage(
57 FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
58 NULL,
59 dwError,
60 MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT),
61 (PTSTR)&hlocal,
62 0,
63 NULL
64 );
65
66 if (hlocal != NULL) {
67 fprintf(stderr, "Error with '%s': %s", error_source, hlocal);
68 LocalFree(hlocal);
69 }
70
71 }

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed