当前位置: 首页 > news >正文

C语言 常用工具型API --------system()

函数名: system()

用 法: int system(char *command);

原理:

        加载一个子进程去执行指定的程序,而想Linux命令基本都是一个单独的进程实现的,所以你所掌握的Linux命令越多,该函数功能就越强大。

其原理基本就是这样,如果想要深入了解可以去了解一下相关的函数。

(执行shell 命令)

相关函数

fork,execve,waitpid,popen  

头文件

#include<stdlib.h>

一下是一段通过system操控mplayer播放器的代码,有兴趣的可以自行解读一下。

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>void *play_task(void *arg)
{FILE *fp = popen("mplayer -slave -quiet -input file=/home/gec/pipe -geometry  100:100  -zoom -x 800 -y 480  dream.avi", "r");if (fp == NULL){perror("加载播放器失败\n");return NULL;}while (1){// 读播放器返回的数据char buf[1024] = {0};fgets(buf, 1024, fp);if (feof(fp)){printf("播放完毕\n");break;}printf("play_msg=%s\n", buf);}pclose(fp);
};int main()
{while (1){printf("1.开始播放  2.快进 3.快退  4.获取时间 5.退出播放\n");int n = 0;scanf("%d", &n);if (n == 1){// 结束播放system("killall  mplayer");// 开启播放器线程pthread_t tid;pthread_create(&tid, NULL, play_task, NULL);}if (n == 2){system("echo seek +10 > /home/gec/pipe");}if (n == 3){system("echo seek -10 > /home/gec/pipe");}if (n == 4){system("echo get_time_pos > /home/gec/pipe");}if (n == 5){system("killall  mplayer");break;}}
}

http://www.lryc.cn/news/126833.html

相关文章:

  • 车规级半导体分类(汽车芯片介绍)
  • opencv图像轮廓检测
  • 诚迈科技荣膺小米“最佳供应商奖”
  • 分布式 - 消息队列Kafka:Kafka 消费者的消费位移
  • H3C QoS打标签和限速配置案例
  • 带curl的docker镜像image
  • Hadoop数据迁移distcp
  • QT-Mysql数据库图形化接口
  • LeetCode150道面试经典题-- 合并两个有序链表(简单)
  • GitHub 如何部署写好的H5静态页面
  • SharkTeam:Worldcoin运营数据及业务安全分析
  • C语言编程练习
  • vue入门(增查改!)
  • 移动端身份证识别技术的应用,告别手动录入证件信息
  • 网络通信原理TCP字段解析(第四十七课)
  • uniapp微信小程序消息订阅快速上手
  • MySQL 根据多字段查询重复数据
  • Markdown编辑器 Mac版Typora功能介绍
  • el-form自定义校验规则
  • xml对象与字符串互换
  • 单例模式和多例模式和工厂模式
  • 【网络架构】华为hw交换机网络高可用网络架构拓扑图以及配置
  • 信也科技一面凉经
  • AI商业化如何落地?看设计师如何利用AI细化工作流
  • 论文阅读 - Understanding Diffusion Models: A Unified Perspective
  • [Python进阶] 定制类:模拟篇
  • HTML5 游戏开发实战 | 五子棋
  • rust学习-json的序列化和反序列化
  • 基于MapReduce的Hive数据倾斜场景以及调优方案
  • mysql 02 数据库的约束