C语言的system函数具体怎么用啊?
小弟想自己制作一张GHOST的系统盘.需要用C语言编写一段程序来调用GHOST.想用system函数,可是对system不是很了解,在实验时总是不成功.不知道有没有C(不...
小弟想自己制作一张GHOST的系统盘.需要用C语言编写一段程序来调用GHOST.想用system 函数,可是对system不是很了解,在实验时总是不成功.不知道有没有C(不是C++)高手,帮我写一段能调用外部程序(不是cmd里面的命令)的C码示例(复制过去就能直接运行的),最好配上相应的注释.先谢过了.
下面是小弟实验时写的一段代码.
//我在C盘根目录下面放了一个Fport.exe程序,这是一个在命令提示符下查看端口的软件.
#include<stdio.h>
#include<stdlib.h.
void main()
{
printf("this is a program for ports");
system("c:\fport.ex");
}
编绎运行之后并没有运行 fport.exe这个软件.
请问是为什么?
上面的
system("c:\fport.ex"); 应为 system("c:\fport.exe");
是刚才的失误,实验时并没有少写那个 e 请大家不用再指出来了 展开
下面是小弟实验时写的一段代码.
//我在C盘根目录下面放了一个Fport.exe程序,这是一个在命令提示符下查看端口的软件.
#include<stdio.h>
#include<stdlib.h.
void main()
{
printf("this is a program for ports");
system("c:\fport.ex");
}
编绎运行之后并没有运行 fport.exe这个软件.
请问是为什么?
上面的
system("c:\fport.ex"); 应为 system("c:\fport.exe");
是刚才的失误,实验时并没有少写那个 e 请大家不用再指出来了 展开
4个回答
展开全部
system(执行shell 命令)
表头文件 #include<stdlib.h>
定义函数 int system(const char * string);
函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
范例 #include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
执行 -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shadow
这是网上抄来的,还有些地方搞不清楚,请高手详细分析一下.那些信号是什么?还有,编写的程序有权限之分?有那些?
system的工作是用指针来完成的?过程呢?
表头文件 #include<stdlib.h>
定义函数 int system(const char * string);
函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
范例 #include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
执行 -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shadow
这是网上抄来的,还有些地方搞不清楚,请高手详细分析一下.那些信号是什么?还有,编写的程序有权限之分?有那些?
system的工作是用指针来完成的?过程呢?
展开全部
还有错误:#include<stdlib.h. ---> inlclude<stdlib.h>
这一处也仅是发帖时的错误吗?
这一处也仅是发帖时的错误吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2007-02-02
展开全部
对不起。。。我还没学到那种地步~~不能帮上你的忙~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呃,你应该把你的题目提在编程那块的,这块懂这方面的少啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询