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