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()
,你这个算是命令行吧,不能叫系统调用
。