永发信息网

就是我想问一下system命令调用shell咱们做到

答案:2  悬赏:40  手机版
解决时间 2021-03-08 13:39
就是我想问一下system命令调用shell咱们做到
最佳答案
system调用shell命令
直接使用就可以啊
这个在Linux编程中很常见的,虽然总被高手们鄙视
比如
system("rm tmp/* -rf");
就可以直接删掉tmp下面所有了
全部回答
使用fork加pipe就加以了, 首先创建一个管道 int fd[2]; pipe(fd); //创建一个管道,fd[0] 是读取端,fd[1]是写入端 然后fork int pid=0; pid=fork(); if( pid < 0 ) { } else if( pid == 0 ) { dup2( fd[1], 1 ); sleep(1); //暂停一秒再输密码,防止你的system还没运行到输密码的地方就输出了,那system调用的命令就收不到了 printf("你的密码\n"); fflush(stdout); //刷新缓冲区,这样printf才能马上生效 //要是有其他的东西要输出也可以继续printf return(0);//子进程要做的事做完了直接退出就行了 } else //父进程 { //这里面就是你原来的处理,但是要改一下,把system调用的命令的标准输入重定向到fd[0],这样子进程往fd[1]里写入密码,由于system是从标准输入读取你的输入的,重定向到fd[0]就能读取子进程写到fd[1]里的密码了 dup2( fd[0], 0 ); //把标准输入重定到fd[0] system("....."); //也可以不使用dup2来重定向,可以直接在system命令里重定向 // 如 sprintf(cmd,"你要调的命令 <&%d", fd[0]); // system(cmd); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问苹果手机如何取消听简模式?
现在去美国佛罗里达州旅游穿什么衣服
我想去圣彼得堡玩 需要哪些东西 签证又要如何
下列关于风险识别的常用方法,描述正确的是()
砀山县白蚁防治中心怎么去啊,有知道地址的么
仙域 怎么使用招魂术
不散不见歌词含义
绿岛花苑(西门)地址有知道的么?有点事想过去
现在荔浦芋头的价格多少钱一斤?
搞笑+热血+校园+高画质,男女主角都好看的动
为什么c<a+b
闪婚,靠谱吗?
youdoesntmanifestmushdesiretomarryme这句话
11112违章代码扣几分是什么意思
小詹北京片皮鸭脆皮烤鸭在哪里啊,我有事要去
推荐资讯
柯桥区华舍新华学校在什么地方啊,我要过去处
苹果6s与6s plus哪个好
只有太阳知道向日葵心中的秘密,也只有向日葵
图3表示沪汉蓉高速铁路示意图,阅读材料,回
三星手机突然跳出这个页面是哪里的问题?怎么
小龙虾和海龙虾的区别和做法
国产对讲机哪个品牌的好
在会计核算中,对企业可能发生的损失和费用预
平安区小峡镇王家庄村村地址在哪,我要去那里
蟹腿都是怎么做的(大蟹腿!)
禾苗怕蝼蛄一一物降一物。是什么动物?
小米不开机怎么刷机
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?