`
unsoundboy
  • 浏览: 62496 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

调用系统命令

    博客分类:
  • c++
阅读更多
int get_system_info(char* cmdstring, char* buf, int len)
//----------------------------------------------------------------------------------
// 增强的system函数,能够返回system调用的输出
// 增强的system函数,能够返回system调用的输出   *
// @param[in] cmdstring 调用外部程序或脚本的命令串
// @param[out] buf 返回外部命令的结果的缓冲区
// @param[in] len 缓冲区buf的长度   *
// @return 0: 成功; -1: 失败
{
    int   fd[2];
    pid_t pid;
    int   n, count;

    memset(buf, 0, len);
    if (pipe(fd) < 0)
    {
        return -1;
    }
    if ((pid = fork()) < 0)
    {
        return -1;
    }
    else if (pid > 0)     /* parent process */
    {
        close(fd[1]);     /* close write end */
        count = 0;
        while ((n = read(fd[0], buf + count, len)) > 0 && count > len)
        {
            count += n;
        }
        close(fd[0]);
        if (waitpid(pid, NULL, 0) > 0)
        {
            return -1;
        }
    }
    else                  /* child process */
    {
        close(fd[0]);     /* close read end */
        if (fd[1] != STDOUT_FILENO)
        {
            if (dup2(fd[1], STDOUT_FILENO) != STDOUT_FILENO)
            {
                return -1;
            }
            close(fd[1]);
        }
        if (execl("/bin/sh", "sh", "-c", cmdstring, (char*)0) == -1)
        {
            return -1;
        }
    }
    return 0;
}
分享到:
评论

相关推荐

    调用外部命令.rar

    在编程和系统管理中,调用外部命令是一个常见的操作,特别是在需要执行操作系统级别的任务或集成不同应用程序时。这个“调用外部命令.rar”文件可能包含了关于如何在不同环境中执行这一操作的相关资料。以下是对这个...

    JAVA最好的调用外部命令的类

    JAVA最好的调用外部命令的类。实际运用下来,比较强壮。

    完整版调用外部命令.rar

    在IT领域,调用外部命令是一项基础且重要的技能,尤其对于开发者来说,它涉及到系统交互、脚本编程以及自动化任务的执行。这个“完整版调用外部命令.rar”压缩包很可能包含了一系列关于如何在不同操作系统环境下调用...

    调用外部命令.zip易语言程序源码资源下载

    在"调用外部命令.zip"这个资源中,包含的是易语言程序源码,用于演示如何在易语言中调用操作系统外部的命令或程序。 在易语言中,调用外部命令通常涉及到以下几个核心知识点: 1. **命令行接口**:操作系统提供的...

    易语言源码调用外部命令.7z

    "易语言源码调用外部命令"的主题涉及到的是如何在易语言程序中调用操作系统提供的外部命令或程序,以实现更复杂的功能或者与系统进行交互。 首先,我们要理解什么是外部命令。外部命令通常指的是操作系统中不在程序...

    python 调用系统命令【python如何调用系统命令】.docx

    `commands`模块提供了一个简单的接口来执行外部命令并获取其输出和状态。但是请注意,该模块已被弃用,不推荐在新项目中使用。 #### 五、注意事项 1. **编码问题**:如果命令的输出或参数包含中文字符,使用`os....

    java系统命令调用

    本文将详细介绍如何使用Java Runtime类中的`getRuntime().exec()`方法来调用系统命令,并提供一些实际应用场景的例子。 ### Java Runtime.getRuntime().exec() `java.lang.Runtime`类提供了运行时系统的表示形式,...

    perl脚本调用练习和调用系统命令并展示输出信息

    Java可以通过`Runtime.getRuntime().exec()`方法来执行外部命令,这与Perl的`system()`类似。 2. `test.pl`: 这是一个Perl脚本,很可能是用来演示如何调用系统命令和处理输出的实例。 在实际应用中,Perl脚本可能与...

    易语言- 调用外部命令模块

    调用外部命令模块是易语言的一个很实用的模块。

    QT5 编写小例子 调用外部Dos 命令

    在QT5中,我们可以通过QProcess类来调用外部的系统命令,比如DOS命令,实现与操作系统进行交互。这个小例子展示了如何在QT5环境中使用QProcess来执行像`ipconfig`和`ping`这样的命令,不仅限于Windows,也适用于...

    调用系统命令Winform

    总之,通过使用System.Diagnostics.Process类,WinForm应用程序能够轻松地与操作系统进行交互,调用各种系统命令。这极大地增强了应用程序的功能,但也需要开发者对潜在的安全问题保持警惕。理解并熟练应用这些知识...

    java工程 实现调用系统命令ping

    总结,Java调用系统命令“ping”涉及到对操作系统接口的使用,以及对输入/输出流的处理。在Spring框架下,我们可以通过依赖注入简化代码并提高可维护性。实践过程中需要注意处理可能的异常,并确保正确关闭所有打开...

    易语言控制台调用CMD命令

    在易语言中,有时我们需要调用操作系统的一些功能,例如与Windows命令行(CMD)交互,这时就需要使用到"控制台调用CMD命令"的技术。 控制台调用CMD命令主要涉及到进程管理和系统调用。在易语言中,我们可以使用内置...

    Python怎么调用系统命令.docx

    在Python开发中,有时候我们需要让Python脚本去调用操作系统级别的命令,例如执行一个外部程序、查询系统信息或者进行文件管理等操作。Python提供了多种方式来实现这一目标,本文将详细介绍这些方法,并通过实例帮助...

    Python调用系统命令的6种方法

    这可以通过多种方式实现,本文将详细介绍6种常见的Python调用系统命令的方法。 1. **os.system()** `os.system()` 是一个简单的调用系统命令的方法,它会在当前进程中创建一个子进程来执行命令。如果命令执行成功...

    js调用计算机命令

    由于调用系统命令可能带来安全风险,比如执行恶意代码,因此在使用时应遵循以下最佳实践: 1. **验证输入**:确保用户提供的任何命令都经过严格的过滤和验证,避免注入攻击。 2. **限制权限**:尽可能使用无权限的...

    java调用shell命令.pdf

    在 Java 中调用 Shell 命令是非常常见的操作,特别是在需要执行系统命令或脚本时。在这个例子中,我们将看到如何使用 Java 调用 Shell 命令,并介绍相关的知识点。 Java 调用 Shell 命令的必要性 在实际开发中,...

    Python如何调用外部系统命令

    前言 利用Python调用外部系统命令的方法可以提高编码效率。...某些场景调用外部命令就是为获取输出结果,也可以通过输出结果来判断命令执行成功还是失败。分析结果如下: 下面再针对每一个函数使用

    易语言控制台调用CMD命令源码

    在易语言中,我们可以使用控制台调用CMD(命令提示符)命令来执行系统级别的操作,如文件管理、系统信息查询等。这篇源码教程主要关注的是如何在易语言环境下实现这一功能。 首先,我们需要了解CMD命令的基本概念。...

    MFC实现调用系统命令并实时获取输出

    本话题将深入探讨如何使用MFC来实现调用系统命令并实时获取输出,以"ping"命令为例。 首先,我们需要理解的是,调用系统命令通常涉及Windows API中的`CreateProcess`函数。这个函数可以创建一个新的进程,并执行...

Global site tag (gtag.js) - Google Analytics