今天在寫程序的時候,碰到個bug,排查了兩個小時才發現。
大概是這樣的:
在程序中想把一條命令執行結果重定向到a.txt。
例如ps > a.txt。
發現a.txt內容一直爲空。原來以前封裝的system函數中使用了這個判斷,
if (NULL == strstr(cmd, "echo"))
{
strncat(cmd, " > /dev/null", 12);
}
把所有命令結果都給重定向到/dev/null中去了,相當於執行了:
ps > a.txt > /dev/null。
這時a.txt內容是空的。