"); if(fgets(buf,sizeof buf,stdin) == NULL) exit(0); infile = strstr(buf,""); if(infi....">

当前位置:  技术问答>linux和unix

一个小问题的迷惑

    来源: 互联网  发布时间:2016-12-06

    本文导语:  #include  #include  #include  #include  int main(void) { char buf[256],*cmd,*vec[128],*infile,*outfile; int n,sv; for(;;) { printf("=> "); if(fgets(buf,sizeof buf,stdin) == NULL) exit(0); infile = strstr(buf,""); if(infile) { *infile = ''; infile = strtok(...


#include 
#include 
#include 
#include 

int main(void)
{
char buf[256],*cmd,*vec[128],*infile,*outfile;
int n,sv;
for(;;)
{
printf("=> ");
if(fgets(buf,sizeof buf,stdin) == NULL)
exit(0);
infile = strstr(buf,"");
if(infile)
{
*infile = '';
infile = strtok(infile + 1," tn");
}
if(outfile)
{
*outfile = '';
outfile = strtok(outfile + 1," tn");
}
cmd = strtok(buf," tn");
if(cmd)
{
if(strcmp(cmd,"exit") == 0) exit(0);
n = 0;
vec[n++] = cmd;
while(vec[n++] = strtok(NULL," tn"));
if(fork() == 0)
{
int fd0 = -1,fd1 = -1;
if(infile) fd0 = open(infile,O_RDONLY);
if(fd0 != -1) dup2(fd0,0);
close(fd0);
if(outfile) fd1 = open(outfile,O_CREAT | O_WRONLY,0666);
if(fd1 != -1) dup2(fd1,1);
close(fd1);
execvp(cmd,vec);
fprintf(stderr,"** ERROR: %sn",strerror(errno));
exit(1);
}
wait(&sv);
}
}
return 0;
}
//书上的一个例子,实现重定向,为啥其他的命令似乎没问题,
//但是执行 cd /目录 时,总是提示:没有该目录,求解.

|
cd是内置命令,也就是说是shell提供的功能而不是某个可执行文件,

你这个程序虚拟一个shell,实际上是执行某个可执行文件,而cd命令并没有对应的可执行文件,所以提示说找不到该文件(是说找不到cd,不是找不到/目录)

whereis命令可以看到某个命令对应的可执行文件在哪里
如:whereis ls的输出可以看到ls对应的可执行文件是/bin/ls

恩。。。不知道说明白了没

|
不要 目录前面的 / 吗?

|
光看看就觉得很迷惑.......

|
感觉就是自己查找自己 呵呵

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3