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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Thu Jun 15 12:22:56 2006 UTC revision 1.3 by joko, Thu Jun 15 13:21:05 2006 UTC
# Line 1  Line 1 
1  /* $Id$ */  /* $Id$ */
2    
3  #include <stdlib.h>  #include <stdlib.h>
4    #include <stdio.h>
5  #include <errno.h>  #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[]) {  int main(int argc, char * argv[]) {
13    if (argc == 1) {    if (argc == 1) {
14      printf("No arguments given.");      //printf("No arguments given.");
15      exit(EXIT_FAILURE);      //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  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

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