当前位置: 技术问答>linux和unix
关于程序中调用cd和ls指令的问题,初学linux ,请大家帮忙!谢谢!
来源: 互联网 发布时间:2015-09-27
本文导语: 我想要实现的是在运行程序,输入指令(如cd ls之类)后 , 程序调用系统的cd ls指令输出相应内容.现在只能够传入一个字符串,这个问题不是关键的,我现在最大的问题是,我运行程序后,输入cd这个指令,总说找不到, ls指令...
我想要实现的是在运行程序,输入指令(如cd ls之类)后 , 程序调用系统的cd ls指令输出相应内容.现在只能够传入一个字符串,这个问题不是关键的,我现在最大的问题是,我运行程序后,输入cd这个指令,总说找不到,
ls指令是可以找到的. 帮我看看是怎么回事,谢谢!
我运行cd和ls的结果是:
myclient >: cd
path= /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
buf=/root/bin6/bin/cd
can't find
myclient >: ls
path= /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
buf=/bin/ls
makefile myprogram pchar pchar.c pchar.d pchar.o/*该目录下面的文件*/
我调用指令 whereis 查看cd和 ls指令的位置,输出如下
whereis cd
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/mann/cd.n.gz
whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
源代码如下:
#include
#include
#include
#include
char buffer[128];
int is_command_exist (char *);
int main (int argc, char *argv[])
{
char input_buf[128];
int i, j, k;
int lc_input_len = 0;
char lc_char;
char bake_input[128];
char *arg[10];
int pid;
/*获取输入的字符串*/
while (1)
{
printf ("myclient >: ");
lc_char = getchar ();
while (lc_char != 'n' && lc_input_len 128)
{
printf ("your input is too long! reinputn");
lc_input_len = 0;
continue;
}
else
{
input_buf[lc_input_len] = '';
strcpy (bake_input, input_buf);
break;
}
}
for (i = 0, j = 0, k = 0; i
ls指令是可以找到的. 帮我看看是怎么回事,谢谢!
我运行cd和ls的结果是:
myclient >: cd
path= /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
buf=/root/bin6/bin/cd
can't find
myclient >: ls
path= /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
buf=/bin/ls
makefile myprogram pchar pchar.c pchar.d pchar.o/*该目录下面的文件*/
我调用指令 whereis 查看cd和 ls指令的位置,输出如下
whereis cd
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/mann/cd.n.gz
whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
源代码如下:
#include
#include
#include
#include
char buffer[128];
int is_command_exist (char *);
int main (int argc, char *argv[])
{
char input_buf[128];
int i, j, k;
int lc_input_len = 0;
char lc_char;
char bake_input[128];
char *arg[10];
int pid;
/*获取输入的字符串*/
while (1)
{
printf ("myclient >: ");
lc_char = getchar ();
while (lc_char != 'n' && lc_input_len 128)
{
printf ("your input is too long! reinputn");
lc_input_len = 0;
continue;
}
else
{
input_buf[lc_input_len] = '';
strcpy (bake_input, input_buf);
break;
}
}
for (i = 0, j = 0, k = 0; i