首页 > 系统相关 >在代码中获得linux shell命令执行结果的方法

在代码中获得linux shell命令执行结果的方法

时间:2024-04-12 16:14:10浏览次数:26  
标签:shell temp 代码 char iRet linux NULL buf ptr

1.使用``符号

``符号,及键盘左上角的反引号,类似markdown的内嵌代码,可以直接获得命令的执行结果作为字符串。

char buf[100];
     sprintf(buf, "echo \" `date` : %d\" >> ~/test_data.txt" ,123);
     system(buf);

2.使用管道

#define CMD_RESULT_BUF_SIZE 1024


int ExecuteCMD_C(const char* cmd, char* result_)
{
    char buf_temp[CMD_RESULT_BUF_SIZE] = {0};
    FILE *ptr = NULL;
    int iRet = -1;

    //popen: 开启子进程,建立管道,并运行指令,'r':从子进程获取结果,'w':向子进程写数据
    if((ptr = popen(cmd, "r")) != NULL)  //popen
    {
        if(fgets(buf_temp, sizeof(buf_temp), ptr) != NULL)
        {
            strcpy(result_, buf_temp);
        }
        pclose(ptr);
        ptr = NULL;
        iRet = 0;  // 处理成功
    }
    else
    {
        Rotating_Error("popen %s error\n", cmd);
        iRet = -1; // 处理失败
    }

    return iRet;
}

标签:shell,temp,代码,char,iRet,linux,NULL,buf,ptr
From: https://www.cnblogs.com/HuangLiDi/p/18131522

相关文章

  • linux C++程序测试命令的一种实现
    linuxC++程序测试命令的一种实现前言在程序开发调试过程中,或者已经部署的情况下,我们常常需要执行一些测试命令。在命令行端输入命令,然后程序执行,说起来简单,但是当程序本身有很多终端调试信息输出时,命令输入很不方便。针对上述问题,以下提供一个使用消息队列的命令行测试小工具......
  • windows和Linux下路径表示
    reference一、\(Windows\)下的路径表示由于\(DOS\)原因,过去的\(windows\)路径表示采用反斜杠\,而路径字符串由于反斜杠的转义字符,因此需要用双反斜杠\\。\(Windows\)的根据路为磁盘号,后面跟:path如今的\(Windows\)内核在处理路径时同时支持正斜杠和反斜杠。但有时候......
  • Linux服务器文件删除恢复方法XFS篇
    XFS文件系统文件被删除后,可以使用xfs_undelete工具进行恢复。值得注意的是:XFS文件系统的特性,文件删除后文件名即丢失,哪怕能恢复数据,文件名也恢复不了,所以在恢复之前一定要知道文件类型,最好还要知道创建时间、文件大小等信息,知道的越多越容易恢复。接下来安装xfs_undelete工具,以......
  • Linux使用ntp时间服务器同步时间
    NTP时间同步服务器是一种基于网络的时间同步协议,它的全称是NetworkTimeProtocol,NTP的主要功能是通过互联网将计算机的系统时间同步到标准的时间服务器上,以确保在分布式系统中的所有计算机都能有一个统一、准确的时间。一、使用ntp时间服务yumintall-yntp 二、启动并设......
  • Linux0.12内核源码解读(2)-Bootsect.S
    大家好,我是呼噜噜,在上一篇文章聊聊x86计算机启动发生的事?我们了解了x86计算机启动过程,MBR、0x7c00是什么?其中当bios引导结束后,操作系统接过计算机的控制权后,发生了哪些事?本文将揭开迷雾的序章-Bootsect.S回顾计算机启动过程我们先来回顾一下,上古时期计算机按下电源键的启动过程,......
  • Linux安装Apollo配置中心
    apollo官网链接:https://www.apolloconfig.com/#/zh/READMEApollo组件简介ApolloConfigService是一个分布式的配置中心,主要负责应用的配置信息存储、推送和管理。ConfigService支持多种存储方式,例如本地文件系统、Git存储和数据库存储等,同时也提供基于轮询和通知两种方......
  • 在Linux中,如何进行系统安全加固?
    在Linux中,进行系统安全加固是确保系统抵御外部攻击和内部威胁的重要措施。以下是一些关键的安全加固步骤:1.保持系统更新定期更新系统和所有软件包,以确保安装了最新的安全补丁和功能。sudoaptupdate&&sudoaptupgrade#Debian/Ubuntusudoyumupdate......
  • 在Linux中,如何配置和管理系统备份和恢复策略?
    在Linux中,配置和管理系统备份和恢复策略是至关重要的,因为它能帮助保护关键数据,并在发生系统故障或数据丢失时快速恢复。以下是一个详细的步骤说明,指导您如何配置和管理Linux系统的备份和恢复策略:1.选择备份工具首先,您需要选择适合您需求的备份工具。Linux上有许多备份工具可供......
  • 在Linux中, 什么是shell函数?如何使用它们?
    在Linux中,shell函数是一种在shell脚本中封装重复使用的代码片段的方法,用于提高代码的可读性和复用性。shell函数类似于其他编程语言中的函数概念,允许程序员定义一组指令序列,将其作为一个整体调用,并在需要的时候执行这些指令。1.定义shell函数的基本语法:有两种方式来定义shell函......
  • 在Linux中,如何编写一个脚本来自动执行日常任务?
    在Linux中,编写脚本以自动执行日常任务是一种常见的自动化方法。这些脚本可以利用shell的命令行功能来简化重复性工作,提高效率。以下是一个简单的shell脚本编写和执行的步骤:1.选择脚本编辑器首先,选择一个文本编辑器来编写脚本。常用的编辑器有vi、nano、emacs等。2.创建脚本文......