当前位置: 首页 > 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;
}

相关文章:

  • 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】全国二手房指数数据爬取
  • 做 理财网站/手机百度极速版
  • 现在流行什么语言建设网站/推广拉新app哪几个靠谱
  • 做的网站电脑上跟手机上不一样/阿里云免费建站
  • 网站开发 技术难点/站长工具在线免费
  • 黑客编程软件/昆明seo工资
  • 城厢区建设局网站/职业技能培训网上平台