c linux system(国产Linux系统)
老铁们,大家好,相信还有很多朋友对于c linux system和国产Linux系统的相关问题不太懂,没关系,今天就由我来为大家分享分享c linux system以及国产Linux系统的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
C语言中system("pause")是什么作用和意思
system("pause")意思就是让程序暂停一下,然后按任意键继续,初学的时候最多见于程序的末尾处,用于看运行结果,避免程序一闪而过。相同的我们还可以用getchar(),避免程序运行完直接结束而看不到运行结果。
如下图:
执行到 system("pause");按任意键继续
贴上代码:
#include<stdio.h>
void main()
{
printf("haha哈哈\n");
system("pause");
printf("haha哈哈\n");
system("pause");
}
扩展资料:
函数名: system
功能:发出一个DOS命令
用法: int system(char*command);
system函数已经被收录在标准c库中,可以直接调用。
Linux C语言用system()调用,带参数
linux c system函数介绍:
system(执行shell命令)
相关函数
fork,execve,waitpid,popen
表头文件
#i nclude
定义函数
int system(const char* string);
函数说明
system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno来确认执行成功。
附加说明
在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
范例
#i nclude
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/shado
例2:
char tmp[];
sprintf(tmp,"/bin/mount-t vfat%s/mnt/usb",dev);
system(tmp);
其中dev是/dev/sda1。
system函数的源码
#include<syspes.h>
#include<sys/wait.h>
#include<errno.h>
#include<unistd.h>
int system(const char* cmdstring)
{
pid_t pid;
int status;
if(cmdstring== NULL){
return(1);
}
if((pid= fork())<0){
status=-1;
}
else if(pid= 0){
execl("/bin/sh","sh","-c", cmdstring,(char*)0);
-exit(127);//子进程正常执行则不会执行此语句
}
else
{
while(waitpid(pid,&status, 0)< 0){
if(errno!= EINTER)
{
status=-1;
break;
}
}
}
return status;
}
那么如何获得system的返回值呢??
char buf[10];
char* ps="ps-ef|grep-c root";
FILE*ptr;
int i;
if((ptr= popen(ps,"r"))!= NULL)
{
fgets(buf, 10, ptr);
i= atoi(buf);
pclose(ptr);
}
可以man下waitpid查看下如何检查status的值
int ret= system("ls-al/etc/passwd/etc/shadow");
if(WIFSIGNALED(ret))
具体的这些宏查看man waitpid
c 中system是什么意思
system是一个C语言的库函数,它的作用是在程序中执行shell命令。在Linux和Unix系统中,shell是用户与操作系统之间交互的接口。通过system函数可以直接在程序中调用shell命令,这极大的方便了程序的操作和管理。例如,如果要在C程序中运行一个Python脚本,可以使用system("python script.py")命令来完成。
虽然system函数可以方便地在C程序中调用shell命令,但同时也带来了一定的风险。由于system函数是直接执行用户输入的shell命令,如果用户输入了恶意的命令,就可能导致程序被攻击。因此,在使用system函数时,必须特别小心,避免执行未经信任的命令,以防止安全漏洞的产生。
除了在C程序中执行shell命令外,system函数还可以用于系统调用。在Linux系统中,有许多系统调用可以通过system函数来调用。例如,可以使用system("mkdir folder")命令来创建一个新的文件夹,或者使用system("rm file.txt")命令来删除一个文件。使用system函数调用系统命令可以大大简化代码,并极大地提高程序的开发效率。