Windows上的/dev/null相当于什么?#1楼Windows中的NUL似乎实际上是任何文件夹中的虚拟路径。 就像.. , . 在任何文件系统中。使用NUL后面的任何文件夹都可以。例,echo 1 > nulecho 1 > c:\nulecho 1 > c:\users\nulecho 1 > c:\windows\nul与Linux上的/dev/null具有相同的...
1. 前提是
windows
装了powershell
2. 使用Clear-Content命令清空文件
中
内容
> 所谓清空文件,就是将一个文本文件里面的内容全部删除,但是不删除文件本身
3. 案例
PS E:\ifield\logs>
PS E:\ifield\logs> Clear-Content .\log.log
PS E:\ifield\logs>
把/
dev
/
null
看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.
然而, /
dev
/
null
对命令行和脚本都非常的有用.
禁止标准输出.
Windows
命令行
中
重定向stdout和stderr到NUL,就可以避免程序输出任何字符到控制台,所有的字符都输出到NUL
中
去了,NUL不是文件名,可以理解为一个不存在的文件,所以也无法查看NUL咯,等于抛弃了标准输出和错误输出。
具体的例子如,
wget 2>NUL 1>NUL
在linux环境下,想要达到同样的效果可以使用下面的命令:
wget 2>/
dev
/
null
1>
在我们编写脚本的时候,难免会遇到一些需求,就是有时候为了更好的数据展现,我们需要对一些错误的信息进行屏蔽(建议已日志文件的记录进行保存),从而实现脚本的美观及更好的可读性,下面介绍一下分别在Shell脚本及Python脚本
中
如何去实现这个功能。
1、场景模拟
比如说,下面这个场景:此时多出来的访问结果非常的影响阅读,而且在这个场景下也完全不需要关心返回的内容是啥,只需要知道执行的结果是成功还是失败,也就是不问过程,只问结果(有没有感觉像你的公司理念呀)。
BB那么多,如何实现呢?下面开始
creat_file(); //新建文件,原文件数据被删除
RecordWave(); //录音函数
simplest_pcm16le_to_wave("NocturneNo2inEflat_44.1k_s16le.pcm", 1, 44100,
"output_nocture.wav"); //将二进制录音信息从内存
中
提取,并生成 wav 文件
测控 1602
DEV
C ++ 环境下 控制台应用程序 善解人意 成员:王帅、赵永玻、侯雅茹
return 0;
void RecordWave()
int count = waveInGetNum
Dev
s(); //检测录音设备
printf("\n 音频输入数量:%d\n", count);
WAVEINCAPS waveIncaps;
MMRESULT mmResult = waveInGet
Dev
Caps(0, &waveIncaps;, sizeof(WAVEINCAPS));
printf("\n 音频输入设备:%s\n", waveIncaps.szPname);
if (MMSYSERR_NOERROR == mmResult)
//HWAVEIN phwi;
WAVEFORMATEX pwfx; //录音格式指针
WaveInitFormat
(&pwfx;, //波形声音的格式,单声道双声道使用 WAVE_FORMAT_PCM.当包含在
WAVEFORMATEXTENSIBLE 结构
中
时,使用 WAVE_FORMAT_EXTENSIBLE
1, //声道数量
44100, //采样率
16 // 采样位数
printf("\n 正在打开音频输入设备");
printf("\n 采样参数:声道 44.1kHz 16bit\n");
mmResult = waveInOpen(
&phwi;,
WAVE_MAPPER,
&pwfx;,
(DWORD)(MicCallback),
NULL
,
CALLBACK_FUNCTION
);//3
if (MMSYSERR_NOERROR == mmResult)
//WAVEHDR pwh1;
char buffer1[10240];
pwh1.lpData = buffer1;
pwh1.dwBufferLength = 10240;
pwh1.dwUser = 1;
pwh1.dwFlags = 0;
测控 1602
DEV
C ++ 环境下 控制台应用程序 善解人意 成员:王帅、赵永玻、侯雅茹
mmResult = waveInPrepareHeader(phwi, &pwh1;, sizeof(WAVEHDR));//为波形输
入设备准备缓冲区
printf("\n 准备缓冲区 1");
//WAVEHDR pwh2;
char buffer2[10240];
pwh2.lpData = buffer2;
pwh2.dwBufferLength = 10240;
pwh2.dwUser = 2;
pwh2.dwFlags = 0;
mmResult = waveInPrepareHeader(phwi, &pwh2;, sizeof(WAVEHDR));//为波形输
入设备准备缓冲区
printf("\n 准备缓冲区 2\n");
// WAVEHDR pwh3;
char buffer3[10240];
pwh3.lpData = buffer3;
pwh3.dwBufferLength = 10240;
pwh3.dwUser = 3;
pwh3.dwFlags = 0;
mmResult = waveInPrepareHeader(phwi, &pwh3;, sizeof(WAVEHDR));//为波形输
入设备准备缓冲区
printf("准备缓冲区 3\n");
if (MMSYSERR_NOERROR == mmResult)
mmResult = waveInAddBuffer(phwi, &pwh1;, sizeof(WAVEHDR));//给输入设
备增加一个缓存
printf("\n 将缓冲区 1 加入音频输入设备");
mmResult = waveInAddBuffer(phwi, &pwh2;, sizeof(WAVEHDR));//给输入设
备增加一个缓存
printf("\n 将缓冲区 2 加入音频输入设备\n");
mmResult = waveInAddBuffer(phwi, &pwh3;, sizeof(WAVEHDR));//给输入设
备增加一个缓存
printf("将缓冲区 3 加入音频输入设备\n");
在嵌入式web服务器boa框架的基础上,
使用
C语言
cgi, 或者Python脚本, 结合HTML + javascript + ajax 的嵌入式web系统的开发实例
html
中
使用javascritp + ajax 从
C语言
生成的cgi文件的get, set 一些值.
boa服务器的相关配置参数说明:
http://www.cnblogs.com/liuweiqiang/p/3859130.html
boa安装包文件名: boa-for-hi3516a.tar.gz
boa.conf 文件的保存路径: cat /etc/boa/boa.conf
boa可 执行文件的路径: /usr/local/bin/boa, 可以设置为: 系统启动的时候, 这个进程自动启动
boa.conf 文件的重要参数
保存html文件的目录
DocumentRoot /www
可以将这个目录, 设置为samb共享文件夹的目录, 方便修改调试
修改完成以后, 肯定要重启boa进程的
保存python脚本, 或者
C语言
cgi文件的目录
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
说明: cgi-bin/ 后面的斜杠, 一定要加上
可以将这个目录, 设置为samb共享文件夹的目录, 方便修改调试
修改完成以后, 肯定要重启boa进程的
html文件文件
中
, 调用python脚本的时候, 指定的路径, 需要有: /cgi-bin, 比如:
var url = "/cgi-bin/getuser.py"; 这个是python
var url = "/cgi-bin/output.cgi"; 这个是
C语言
如果发现, html文件, 修改了, 可是在浏览器
中
, 查看html源代码的时候, 这个代码, 还是旧的,
那么可以通过清空"IE浏览器", "360浏览器"的浏览记录
以上, javascript 可以调用python
同样, 也可以调用
C语言
生成的cgi文件(其实, 就是可执行文件)
C语言
+ Html 例子
C语言
CGI实例
http://blog.csdn.net/ajrm0925/article/details/8810342
http://blog.csdn.net/liang890319/article/details/6277900
http://blog.csdn.net/gnefniu/article/details/42432657
上传文件:
http://blog.csdn.net/yu_xiang/article/details/7996670
find . -type f -name "boa.conf" -print -mount
find . -type f -name "boa" -print -mount
四、嵌入式web服务器boa的配置和使用
嵌入式web服务器boa的配置文件为boa.conf, 在boa-0.94.13目录下面,复制该文件到文件
系统的/etc/boa目录下面,打开boa.conf,修改为如下内容:
Port 80
User root
Group root
ErrorLog /
dev
/console
AccessLog /
dev
/
null
ServerName SoftEmbed.com
DocumentRoot /www
DirectoryIndex index.html
KeepAliveMax 1000
KeepAliveTimeout 10
MimeTypes /etc/mime.types
DefaultType text/plain
CGIPath /bin:/usr/bin:/usr/local/bin
ScriptAlias /cgi-bin/ /www/cgi-bin/
几个重要配置参数如下:
DocumentRoot: 存放html文档的主目录;
DirectoryIndex: 默认返回的html文档;
ScriptAlias:cgi脚本虚拟路径对应的实际路径,/www/cgi-bin/为cgi脚本存放的实际路径;
其他配置选项的意义请参考相关资料。
复制boa可执行文件到/usr/sbin目录
中
, 启动boa进程
重新制作文件系统,系统启动后,在客户端浏览器上输入开发板的ip 地址,例如:
http://192.168.0.218, 就可以看到显示的测试网页了,如下图所示
CGI getenv函数的参数详解: http://www.cnblogs.com/ser0632/p/5498228.html
s = getenv("环境变量名"); 取得环境变量内容
putenv改变或增加环境变量
int putenv(const char * string);
setenv(改变或增加环境变量)
http://www.jb51.net/article/71940.htm