重定向之(不想把标准输出打印到屏幕)

最近做毕业设计,使用到madplay,但是用madplay总会在屏幕上打印出播放音频的信息,这里有一种办法来去除这种bug。





Linux常见特殊符号
Linux
1.     > 重定向输出符号。
2.  >>重定向输出符号,但有追加的功能。
3.  2>错误重定向输出符号,覆盖原文件内容。
4.  2>>错误重定向输出符号,有文件内容追加的功能。
5.  * 匹配任意字符。
6.  ?匹配任意一个字符。
7.  | 管道符号。
8.  & 后台进程符。
9.  &&l逻辑与符号。用法:命令1 && 命令2  表示如果命令1执行成功,继续执行命令2。
10.|| 逻辑或符号。用法:命令1 | | 命令2 表示如果命令1执行成功,不执行命令2;但如果命令1执行失败才执行命令2。
11.逻辑非符号。排除指定范围。
12.[x-y]表示一定的范围。
13.# 注释符。
14.” ” 双引号表示把它所包含的内容作为普通字符,但` ` $  \ ‘ ‘ 几个符号除外。
15.’ ’ 单引号表示把它所包含的内容作为普通的字符,无特殊例外。
16.$ 变量符。
17.\ 转义字符。
18.’ ’倒引号,表示它所包含的内容。
19.;命令分隔符。
20.< 重定向输入符。
21.()表示整体执行命令。




以前写过一个测试网络的代码,先参考一下:



#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include <unistd.h>
#include <termios.h>
#include <string.h>
#include <linux/kd.h>
#include <sys/ioctl.h>
#include<sys/stat.h>

#define CMD_IFCONFIG    "ifconfig eth0 192.168.1.138 1>./net  2>./net"
#define CMD_PING  "ping -c 2 192.168.1.1 1>./net  2>./net"
#define CMD_GREP  "cat ./net | grep '2 packets transmitted, 2 packets received, 0% packet loss' 1>./net_info 2>./net_info"
#define ERRO_INFO  "./net_info"
#define CMD_NET_DOWN    "ifconfig eth0 down"
#define CMD_NET_UP      "ifconfig eth0 up"

int main(void)
{
        struct stat stat_buf;

        system(CMD_IFCONFIG);
                printf("CMD_IFCONFIG OK!\n\r");
        system(CMD_PING);
                printf("CMD_PING OK!\n\r");
        system(CMD_GREP);
                printf("CMD_GREP OK!\n\r");

        if (stat(ERRO_INFO,&stat_buf)<0)
        {
                printf("Failed:buf<0\n\r");
                return -1;

        }
        if (stat_buf.st_size <= 0)
        {
                printf("Failed:size<=0\n\r");
                return -1;
        }
        printf("net is ok!\n\r");
        return 0;
}

其中, “ping -c 2 192.168.1.1 1>./net 2>./net” 意思是,ping 路由器两次,成功(1>./net)则重定向输出到./net文件中(不存在则自动创建),失败(2>./net)则重定向输出到./net 文件中。


同样madplay在代码中可以这么用:

system("madplay music.mp3 1>./tmp 2>./tmp");


在熟悉madplay的情况下,可以直接这么来做(推荐):

system("madplay -Q music.mp3");




 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酣楼驻海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值