Skip to content
Snippets Groups Projects
Commit ca029c27 authored by 김성규's avatar 김성규
Browse files

Make cd/pwd

parent f2c8d615
Branches master
No related tags found
No related merge requests found
...@@ -27,6 +27,13 @@ int do_cd(int argc, char** argv); ...@@ -27,6 +27,13 @@ int do_cd(int argc, char** argv);
*/ */
int do_pwd(int argc, char** argv); int do_pwd(int argc, char** argv);
/**
validate_cd_argv(argc, argv)
returns:
If success, return 1. (true)
Else return 0. (false)
*/
/** /**
validate_cd_argv(argc, argv) validate_cd_argv(argc, argv)
...@@ -44,5 +51,11 @@ int validate_cd_argv(int argc, char** argv); ...@@ -44,5 +51,11 @@ int validate_cd_argv(int argc, char** argv);
*/ */
int validate_pwd_argv(int argc, char** argv); int validate_pwd_argv(int argc, char** argv);
/**
validate_alias_argv(argc, argv)
returns:
If success, return 1. (true)
Else return 0. (false)
*/
#endif // MYSH_COMMANDS_H_ #endif // MYSH_COMMANDS_H_
#include <string.h> #include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "commands.h" #include "commands.h"
int do_cd(int argc, char** argv) { int do_cd(int argc, char** argv) {
if (!validate_cd_argv(argc, argv)) if (!validate_cd_argv(argc, argv))
return -1; return -1;
// TODO: Fill it! chdir(argv[1]);
return 0; return 0;
} }
...@@ -14,19 +16,34 @@ int do_pwd(int argc, char** argv) { ...@@ -14,19 +16,34 @@ int do_pwd(int argc, char** argv) {
if (!validate_pwd_argv(argc, argv)) if (!validate_pwd_argv(argc, argv))
return -1; return -1;
// TODO: Fill it! char buf[1000];
getcwd(buf,1000);
printf("%s\n", buf);
return 0; return 0;
} }
/**
int do_alias(int argc, char**argv){
//fill it
return 0;
}
*/
int validate_cd_argv(int argc, char** argv) { int validate_cd_argv(int argc, char** argv) {
// TODO: Fill it! if(strcmp(argv[0],"cd") == 0 && argc == 2)
return 1; return 1;
return 0;
} }
int validate_pwd_argv(int argc, char** argv) { int validate_pwd_argv(int argc, char** argv) {
// TODO: Fill it! if(strcmp(argv[0],"pwd") == 0 && argc == 1)
return 1; return 1;
return 0;
} }
/**
int validate_alias_argv(int argc, char** argv){
//fill it
return 1;
}
*/
#include "utils.h" #include "utils.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void mysh_parse_command(const char* command, void mysh_parse_command(const char* command,
int *argc, char*** argv) int *argc, char*** argv)
{ {
// TODO: Fill this! char* token = NULL;
char parse[] = " \t\n";
char str[1000];
strcpy(str, command);
token = strtok(str,parse);
*argv = (char**)malloc(sizeof(char*)*1000);
*argc = 0;
if(token == NULL){
strcpy((*argv)[0], "");
*argc = 1;
return;
}
while(token != NULL){
(*argv)[*argc] = (char*)malloc(sizeof(char)*1000);
strcpy((*argv)[*argc], token);
token = strtok(NULL, parse);
(*argc) ++;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment