C语言利用system调用系统命令行详情

 更新时间:2022年01月04日 11:54:57   作者:微小冷  
这篇文章主要介绍了C语言利用system调用系统命令行详情,system就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行。下文的具体内容,需要的小伙伴可以参考一下

system,顾名思义,就是调用系统命令行,输入为字符串,然后把这个字符串输出给命令行,让命令行执行。

为了测试其特性,可以做一个小程序:

//system.c
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int main(){
    char cmd[100];
    while(1){
        printf("input code: ");
        gets(cmd);
        if(strcmp(cmd,"exit")==0)
            break;  //当输入exit时退出
        system(cmd);
    }
    return 0;
}

然后开始

>gcc system.c
>a.exe
input code: asdfasdf
'asdfasdf' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
input code: date
当前日期: 2021/12/19 周日
输入新日期: (年月日)
input code: date
当前日期: 2021/12/19 周日
输入新日期: (年月日)
input code: HELP
有关某个命令的详细信息,请键入 HELP 命令名
ASSOC          显示或修改文件扩展名关联。
ATTRIB         显示或更改文件属性。
BREAK          设置或清除扩展式 CTRL+C 检查。
BCDEDIT        设置启动数据库中的属性以控制启动加载。
# 由于太长,且和命令行中输入HELP的结果是一样的,所以这里就省略了
有关工具的详细信息,请参阅联机帮助中的命令行参考。
input code: exit        #退出

通过system,可以做一个增强版的命令行。

而除了这些终端提供的命令之外,可能还需要一些自定义的语句,这些语句都被存放在环境变量中,getenv可以获取名字对应的环境变量

char *getenv(const char *name)

例如:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   printf("PATH : %s\n", getenv("PATH"));
   return 0;
}

其运行结果为:

E:\Documents\00\1220>a.exe
PATH : C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Python310\Scripts\;C:\Python310\;C:\Program Files\Common Files\Oracle\Java\javapath;D:\CS\ImageMagick;(x86)\Common Files\Intel\Shared 
....

到此这篇关于C语言利用system调用系统命令行详情的文章就介绍到这了,更多相关C语言利用system调用系统命令行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Qt自定义美化滑动条

    Qt自定义美化滑动条

    这篇文章主要为大家详细介绍了Qt自定义美化滑动条的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • C++教程之变量的作用域与生命周期详解

    C++教程之变量的作用域与生命周期详解

    在C++编程中,变量的作用域和生命周期是非常重要的概念。了解这些概念可以帮助开发人员编写更好的代码并避免错误。在本文中,我们将探讨C++中变量的作用域和生命周期,以及如何正确地使用它们
    2023-04-04
  • 深入串的模式匹配算法(普通算法和KMP算法)的详解

    深入串的模式匹配算法(普通算法和KMP算法)的详解

    本篇文章是对串的模式匹配算法(普通算法和KMP算法)的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++的静态类型检查详解

    C++的静态类型检查详解

    这篇文章主要为大家详细介绍了C++的静态类型检查,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C/C++ 实现递归和栈逆序字符串的实例

    C/C++ 实现递归和栈逆序字符串的实例

    这篇文章主要介绍了C/C++ 实现递归和栈逆序字符串的实例的相关资料,这里提供实例代码帮助大家学习掌握,需要的朋友可以参考下
    2017-08-08
  • 简单了解C++常见编程问题解决方案

    简单了解C++常见编程问题解决方案

    这篇文章主要介绍了C++常见编程问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • C 语言基础之C语言的常见关键字

    C 语言基础之C语言的常见关键字

    C语言中有一些预先定义的字符串,他们本身被赋予了自身的功能。并且我们在定义变量的时候,不能去抢他们的名字来用。他们就是今天的主角:关键字,下面文章将给大家做详细介绍
    2021-09-09
  • 基于C语言实现的TCP服务器的流程分析

    基于C语言实现的TCP服务器的流程分析

    本文详细介绍了如何使用C语言编写一个简单的TCP服务器,包括创建套接字、绑定IP和端口、监听连接请求、接受客户端连接、数据接收与发送以及关闭套接字等步骤,最后通过一个简单的示例展示了TCP服务器的基本实现过程
    2024-10-10
  • C++超详细讲解auto与nullptr的使用

    C++超详细讲解auto与nullptr的使用

    C++11提供了nullptr用来取代0或者NULL。在C++11之前,使用NULL为空指针赋初值,但NULL其实就是0,这时会把NULL当成0来用;在C++11中,我们在声明一个变量或对象,指定它的类型时,可以不使用变量本身的类型而使用auto替代
    2022-05-05
  • C语言 typedef:给类型起一个别名

    C语言 typedef:给类型起一个别名

    本文主要介绍C语言 typedef,这里整理了相关资料及简单示例代码帮助大家学习理解,有兴趣的小伙伴可以参考下
    2016-08-08

最新评论