linux——system的使用

这篇文章介绍了C语言中的system函数,它用于创建子进程执行给定的命令。当系统调用/bin/sh执行命令失败时,system函数返回127,其他错误返回-1。文中提供了示例代码展示了如何使用system调用执行命令,如改变数据配置文件和运行ps命令。通过对比execl函数,强调了system函数的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

system函数api的使用

#include <stdlib.h>

int system(const char *command);

返回值:

        成功,则返回进程的状态值;不能执行时,返回127;失败返回-1;

分析源码:

#include
#include
#include
#include

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是建立子进程来运行execl(system是封装后的execl函数)

如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。

实际使用:

用法:./changedata config.txt

代码实例:


                
### 使用 Cockpit 进行文件管理 Cockpit 是一款面向 Linux 的 Web 界面系统管理工具,能够简化日常运维工作。对于文件管理功能而言,通过图形化界面可以方便快捷地浏览、创建、编辑以及删除文件。 #### 访问文件管理系统 启动浏览器并输入服务器 IP 地址加上端口号(通常是 9090),登录到 Cockpit 后台,在左侧导航栏找到“Storage 存储”选项下的“File System 文件系统”,点击进入即可查看当前主机挂载的各个分区及其使用情况[^3]。 #### 浏览目录结构 一旦进入了文件系统视图,就可以看到根目录(/)下各级子目录链接列表。单击任意一个文件夹名称可深入其内部继续探索;双击某项具体资源则会弹出新窗口展示详情或允许直接在线预览文档内容。 #### 创建与上传文件/文件夹 当处于某个特定路径时,页面顶部会出现一系列操作按钮。“Create Directory 新建文件夹”用于快速建立新的空目录,“Upload File 上载文件”支持从本地计算机选取要迁移至远程位置的目标对象,并自动完成传输过程。 #### 编辑现有条目属性 选中待处理项目后,右侧将会显示该实体的相关元数据信息面板。这里不仅能看到诸如权限设置(读写执行标志位组合)、所属用户组别等基础参数,还能借助内置文本编辑器修改纯文本类型的文件正文部分。 #### 删除不再需要的数据 同样是在多选模式下选定目标之后,利用批量移除功能来清理无用的历史残留物或是误置于此处的内容单元。值得注意的是,在实际执行前务必确认所选范围正确无误以免造成不可逆损失。 ```bash # 注意:以上描述的操作均需具备相应级别的账户授权才能顺利实施。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值