-
Notifications
You must be signed in to change notification settings - Fork 0
/
shell.h
52 lines (49 loc) · 1.48 KB
/
shell.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef SHELL_H
#define SHELL_H
extern char home[1024];
extern char pwd[1024];
extern int write_fd;
extern int read_fd;
extern int is_bg;
extern int allwd_cmd_sz;
extern char* allowed_cmds[];
extern void (*allowed_execs[])(char*, char**);
struct P {
char pname[128];
int pid;
}process;
extern struct P running[2048];
extern int size_running_procs;
struct ongoing_processes {
char* p_pid;
char p_name[1024];
char p_stime[128];
char p_status[128];
}jobs;
extern struct ongoing_processes cur_jobs[2048];
extern int jobs_sz;
int pipe_handler (char* cmd);
char** redirect_handler (char* cmd);
void execute_cd (char* str, char** args);
void execute_quit (char* str, char** args);
void execute_pwd (char* str, char** args);
void execute_echo (char* args);
void execute_ls (char* str, char** args);
void execute_pinfo (char* str, char** args);
void execute_remindme (char* str, char** args);
void execute_clock (char* str, char** args);
void execute_setenv (char* str, char** args);
void execute_unsetenv (char* str, char** args);
void execute_jobs (int flag);
void execute_kjob (char* str, char** args);
void execute_fg (char* str, char** args);
void execute_bg (char* str, char** args);
void executeCmd (char* str, char** args, void (*exec_fun)(char*, char**));
char** parseStr (char* cmd, char* delim);
int isAllowed (char* cmd);
void interpretCmd (char* cmd);
char* scanCmd ();
char* setPwd (char* cwd);
void printCmdPrompt ();
void trim (char* s, char* cmd);
#endif