Linux系统学习项目之MP3播放器
做一个MP3播放器的项目,播放命令为madplay.
/*************************************************************************
> 文件路径: main.c
> 作者: Moliam
> 邮箱: 2515826079@qq.com
> 文件创建时间: 2019年03月08日 星期五 09时41分20秒
************************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <dirent.h>
#include <signal.h>
#include <sys/wait.h>
#include <time.h>
#include <sys/ptrace.h>
char * song[100];//指向歌名的指针数组
char song_buf[100];//存放将要播放的歌的歌名
char cmd_buf[100];//存放命令
int name[100];//存放播放过的歌曲名字,最多保存100首
int all = 0;//歌曲总数
int i;//
int com=0;//当前歌
int flag=1;//默认列表播放 0为随机播放 1为列表播放 2为随机播放
int n;
int a;
void findmusic(void);//查找mp3文件
void getname(void);//获取mp3文件名字
void play_singlecircle_music1(int);//单曲循环
void play_listcircle_music1(int);//列表循环
void play_random_music(int);//随机播放
void last_music(int a);//上一首歌
void next_music(int a);//下一首歌
void text(void);//测试是否正在播放歌曲
void savename(void);//保存歌曲
void Name(void);//播放歌曲超过100时丢掉保存的第一首歌
int m=48;//0的ASCII值为48
void savename(void)
{
if(n<100){name[n++]=com;//将当前歌存放在数组里
}
else
Name();//当超过100首歌时,丢弃掉数组里存放的第一首歌
}
void fun(int a)//父子进程成功通讯测试函数
{
printf("父子进程通讯成功!\n");
}
/*由于madplay不是由该进程产生的子进程,所以获取当前有没有播放歌曲,如果有的话也不能用waitpid来等待,所以查找了好多资料
然后找到了可以用ps -ef | grep -w madplay | grep -v grep | wc -l终端命令来测试是否madplay正在运行,如果运行,执行