不好意思再请教~
我发现我要抓的讯息是kernel发出来的
有办法抓到"cp: write error: No space left on device"吗?
感谢!!
[/var]# ./hello.out "cp /usb/sda1/HD-underwaterTSHint.mpg ."
cp: write error: No space left on device
result : 0,Success
msg : []
P.S. 目前用errno和popen都没办法抓到
extern int errno;
void getSystemState()
{
char tmp[0x100];
memset(tmp, '0', 0x100);
char *err_str = strerror(errno);
sprintf(tmp, "%d,%s", errno, err_str);
printf("result : %s\n", tmp);
}
int exec(char *cmd)
{
char buf[128];
char msg[2048];
memset(msg, '\0', 2048);
FILE *pp;
if( (pp = popen(cmd, "r")) == NULL )
{
printf("popen() error!\n");
return -1;
}
while(fgets(buf, sizeof(buf), pp))
strcat(msg, buf);
pclose(pp);
getSystemState();
printf("msg : [%s]\n", msg);
return 0;
}
int main(int argc, char *argv[])
{
if (argc > 0)
exec(argv[1]);
return 0;
}
※ 引述《awaysu (阿伟苏)》之铭言:
: 请教如果要用C code执行拷贝
: system("cp /usb/sda1/123.ts /var/");
: cp: write error: No space left on device
: 在C code可以get到"write error: No space left on device"这结果吗?
: 我试过errno,但竟然是Success @@
: 感谢~
--
你是为了旅行而摄影 还是为了摄影而旅行
http://blog.dcview.com/awaysu
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.231.88
※ 编辑: awaysu 来自: 114.32.231.88 (05/02 19:13)
1F:推 antontw:cp /usb/sda1/123.ts /var/ 2>&1 呢? error 在 stderr 吧 05/02 19:24
2F:→ awaysu:感谢1F,用&>导到档案可以 05/02 19:56