feat(builtin): add clear command

This commit is contained in:
iridiumR 2022-09-18 14:53:38 +08:00
parent 0ecd13c0bb
commit c57d46a171
No known key found for this signature in database
GPG key ID: 5574BE4450D55618
2 changed files with 17 additions and 8 deletions

View file

@ -2,7 +2,7 @@
* @Author: 1ridic
* @Date: 2022-09-18 14:16:19
* @Last Modified by: 1ridic
* @Last Modified time: 2022-09-18 14:28:01
* @Last Modified time: 2022-09-18 14:52:17
*/
#include <stdio.h>
#include <stdlib.h>
@ -12,17 +12,20 @@
int dish_cd(char **args);
int dish_help(char **args);
int dish_exit(char **args);
int dish_clear(char **args);
char* builtin_cmd[] = {
"cd",
"help",
"exit"
"exit",
"clear"
};
int (*builtin_func[]) (char **) = {
&dish_cd,
&dish_help,
&dish_exit
&dish_exit,
&dish_clear
};
int dish_cd(char **args)
@ -50,4 +53,9 @@ int dish_exit(char **args)
int getBuiltinNum() {
return sizeof(builtin_cmd) / sizeof(char *);
}
int dish_clear(char **args){
fprintf(stdout,"\033[H\033[J");
return 0;
}

11
main.c
View file

@ -2,7 +2,7 @@
* @Author: 1ridic
* @Date: 2022-09-18 14:13:59
* @Last Modified by: 1ridic
* @Last Modified time: 2022-09-18 14:21:48
* @Last Modified time: 2022-09-18 14:53:04
*/
#include <signal.h>
#include <stdio.h>
@ -14,17 +14,18 @@ char volatile isWaiting = 0;
void intHandler(int dummy) {
if (isWaiting) {
return;
printf("\nSIGINT exit.\n");
fprintf(stderr,"\nSIGINT exit.\n");
exit(EXIT_FAILURE);
}
}
int main(int argc, char *argv[]) {
/* soft irq */
signal(SIGINT, intHandler);
/* clear screen */
fprintf(stdout,"\033[H\033[J");
#ifdef DEBUG
printf("DEBUG is defined\n");
fprintf(stdout,"DEBUG is defined\n");
#endif
while (1) {
loop();