PHPz2017-04-17 14:39:50
sprintf(cmd, "echo '%s %s' >> reports.log", now());
格式字串中明明有兩個%s
,後邊的參數卻只有一個now()
(你的編譯器沒有警告嗎?)。在sprintf()
中,就以為你傳入了兩個字串,當它去讀取那個不存在的參數時,就訪問違規了。我看到你還有個comment
變數沒使用,是不是這個意思:
sprintf(cmd, "echo '%s %s' >> reports.log", now(), comment);
至於建立的文件,就在編譯出來的EXE檔案旁邊,不一定在原始碼目錄。
關於題目中的系统调用
:我第一個反應是open()
,然後是CreateFile()
,你這個算是命令行吧,不能叫系统调用
。