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

函数名: system()

用 法: int system(char *command);

原理:

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

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

(执行shell 命令)

相关函数

fork,execve,waitpid,popen  

头文件

#include

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

#include 
#include 
#include 

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;
        }
    }
}

你可能感兴趣的:(常用C语言API,c语言,开发语言)