Skip to content
Snippets Groups Projects
Commit f510d5a8 authored by choi-jun-yong's avatar choi-jun-yong
Browse files

thank you

parent f2c8d615
Branches master
No related tags found
No related merge requests found
mysh 0 → 100755
File added
#include <string.h> #include <string.h>
#include <stdio.h>
#include "commands.h" #include "commands.h"
#include <unistd.h>
#define MAX_SIZE 300
char buf[MAX_SIZE];
int ch;
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! else if ((ch=chdir(argv[1]))==0)
{
return 0; return 0;
} }
else{
return -1;
}
// TODO: Fill it!
}
int do_pwd(int argc, char** argv) { int do_pwd(int argc, char** argv) {
if (!validate_pwd_argv(argc, argv)) if (!validate_pwd_argv(argc, argv))
return -1; return -1;
getcwd(buf,MAX_SIZE);
printf("%s\n",buf);
// TODO: Fill it! // TODO: Fill it!
return 0; return 0;
...@@ -22,11 +34,27 @@ int do_pwd(int argc, char** argv) { ...@@ -22,11 +34,27 @@ int do_pwd(int argc, char** argv) {
int validate_cd_argv(int argc, char** argv) { int validate_cd_argv(int argc, char** argv) {
// TODO: Fill it! // TODO: Fill it!
if(strcmp(argv[0],"cd")==0)
{
if(argc==2)
{
return 1; return 1;
} }
}
else
return 0;
}
int validate_pwd_argv(int argc, char** argv) { int validate_pwd_argv(int argc, char** argv) {
// TODO: Fill it! // TODO: Fill it!
if(strcmp(argv[0],"pwd")==0)
{
if(argc==1)
{
return 1; return 1;
} }
}
else
return 0;
}
#include "utils.h" #include "utils.h"
#include <string.h>
#include <stdlib.h>
void mysh_parse_command(const char* command,int *argc, char*** argv)
{
char *tmp= (char*)malloc(sizeof(char)*60);
char *token;
*argv= (char**)malloc(sizeof(char)*60);
int c=0;
*argc=0;
(*argv)[c]=(char*)malloc(sizeof(char)*60);
strcpy(tmp,command);
token=strtok(tmp,"' '\t\n\0");
void mysh_parse_command(const char* command, if(token==NULL)
int *argc, char*** argv) {
strcpy((*argv)[c],"");
c=c+1;
}
while(1)
{ {
// TODO: Fill this! if(token==NULL)
break;
strcpy((*argv)[c],token);
c=c+1;
(*argv)[c]=(char*)malloc(sizeof(char)*60);
token=strtok(NULL,"' '\n\t\0");
}
*argc=c;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment