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

利用多进程定时播放,关闭音乐播放器

主进程监控时间,一个子进程负责播放,一个进程负责关闭, 如要更多时间控制可以增加子进程。

当然,通过if判断,一个子进程也可完成多种操作。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <time.h>int closejc(){char *file=tmpnam(NULL);       //生成临时文件freopen(file,"w",stdout);       system("ps -a");                //列出进程到临时文件freopen("/dev/tty","w",stdout);       //取消重定向FILE *f=fopen(file,"r");char o[100];while(fgets(o,100,f)!=NULL){char *pd=strstr(o,"deepin-music");     //杀死运行的deepin-music 程序进程if(pd!=NULL){char *bz=strtok(o," ");         //提取进程号//		int ps=atoi(bz);//		printf("%d\n",ps);char ps[20];snprintf(ps,20,"kill -9 %s",bz);   //拼接kill -9  进程号  system(ps);                         //kill -9  杀死bz号进程}}return 0;
}int main(void){int pi[2];pipe(pi);int cs[2];pipe(cs);pid_t pd=fork();if(pd<0){perror("no york");exit(-1);}if(pd==0){                       //接收open  开始播放音乐close(pi[1]);char o[30];read(pi[0],o,30);if(memcmp(o,"ok",2)==0){system("deepin-music");}_exit(0);}
//-----------------------------------------------------------pd=fork();if(pd<0){perror("no fork");exit(-1);}if(pd==0){close(cs[1]);char o[30];read(cs[0],o,30);if(memcmp(o,"no",2)==0){closejc();}_exit(0);}//---------------------------------------------------close(pi[0]);close(cs[0]);char o[10];struct tm* tp;time_t tim;char bz[][7]={"18611","18711"};         //启动,关闭时间  格式:时分秒while(1){time(&tim);tp=localtime(&tim);snprintf(o,10,"%d%d%d%c",tp->tm_hour,tp->tm_min,tp->tm_sec,'\0');if(memcmp(bz[0],o,7)==0){memcpy(o,"ok",3);write(pi[1],o,3);}if(memcmp(bz[1],o,7)==0){memcpy(o,"no",3);write(cs[1],o,3);}sleep(1);}	return 0;
}


文章转载自:

http://ZNUO34FI.ggfdq.cn
http://nJU6Xn2T.ggfdq.cn
http://sLRdraBL.ggfdq.cn
http://uUsvZuHw.ggfdq.cn
http://G8dJ1zMN.ggfdq.cn
http://IV7MV6a7.ggfdq.cn
http://acslEj64.ggfdq.cn
http://R34aZYnK.ggfdq.cn
http://sS5sTITi.ggfdq.cn
http://4zYPE9sB.ggfdq.cn
http://adhB028J.ggfdq.cn
http://2xb1GzFt.ggfdq.cn
http://zca1nmbB.ggfdq.cn
http://srpqJVfk.ggfdq.cn
http://RMi1W8tQ.ggfdq.cn
http://L2BXEWpd.ggfdq.cn
http://K0bww0pu.ggfdq.cn
http://DLuGMsu4.ggfdq.cn
http://XXqS58dU.ggfdq.cn
http://YbvAu5bc.ggfdq.cn
http://UfV87IGF.ggfdq.cn
http://6kHDJEFb.ggfdq.cn
http://CWUflKWP.ggfdq.cn
http://mpuWBL4Q.ggfdq.cn
http://C016uX9w.ggfdq.cn
http://ELwDBAB1.ggfdq.cn
http://SXSLpNQP.ggfdq.cn
http://ennu5U3B.ggfdq.cn
http://hDLXcNt1.ggfdq.cn
http://haMe9jt8.ggfdq.cn
http://www.dtcms.com/a/226350.html

相关文章:

  • 2025 年 AI 技能的全景解析
  • Hilbert曲线
  • XCPC 常用技巧
  • 中国风展示工作总结商务通用PPT模版
  • Python实例题:Python3实现图片转彩色字符
  • Markdown笔记
  • OneForAll 使用手册
  • 第九天:java注解
  • vue3路由跳转的三种方式
  • lidar和imu的标定(三)平面约束的方法
  • 无法运用pytorch环境、改环境路径、隔离环境
  • @Value,@ConfigurationProperties
  • Go 即时通讯系统:客户端与服务端 WebSocket 通信交互
  • lidar和imu的标定(一)Robust Real-time LiDAR-inertial Initialization
  • 2022—2025年:申博之路及硕士阶段总结
  • 4、数据标注的武林秘籍:Label-Studio vs CVAT vs Roboflow
  • Python编程基础(二)| 列表简介
  • SOC-ESP32S3部分:24-WiFi配网
  • Java八股文——Java基础「面向对象篇」
  • 【js逆向_AES】全国二手房指数数据爬取
  • SolidWorks软件的安装与卸载
  • 研读论文《Attention Is All You Need》(13)
  • 深入理解 C++11 中的 std::move —— 移动语义详解(小白友好版)
  • 3C All-in-One Toolbox:安卓手机的全能维护专家
  • Vehicle HAL(2)--Vehicle HAL 的启动
  • DDR5 ECC详细原理介绍与基于协议讲解
  • IEE754标准,double和int转换,在线计算器
  • pyqt5笔记20250601
  • 嵌入式学习笔记 - FreeRTOS v9.0.0 与v10.0.1不同版本占用资源对比
  • LeetCode 40.组合总和II:含重复元素的组合问题去重策略详解