Re: [問題] 請問如何抓到系統的錯誤?

看板LinuxDev作者時間13年前 (2011/05/02 19:12), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
不好意思再請教~ 我發現我要抓的訊息是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)

05/02 19:24, , 1F
cp /usb/sda1/123.ts /var/ 2>&1 呢? error 在 stderr 吧
05/02 19:24, 1F

05/02 19:56, , 2F
感謝1F,用&>導到檔案可以
05/02 19:56, 2F
文章代碼(AID): #1Dlf6iZT (LinuxDev)
文章代碼(AID): #1Dlf6iZT (LinuxDev)