这一篇博客讲解进程和系统调用相关的知识
有这样一个场景,我需要输入一串文字,然后把我输入的文字加上一个本地的时间戳 保存在一个文件中,可以初步理解为一个备忘录也行
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 5 /** 6 * 获取一个当前时间 7 */ 8 char *now() { 9 time_t t; 10 time(&t); 11 return asctime(localtime(&t)); 12 } 13 14 int main(int argc, const char * argv[]) { 15 16 char comment[80]; 17 char cmd[120]; 18 19 fgets(comment, 80, stdin); 20 // sprintf 把内容写进一个变量中 21 sprintf(cmd, "echo ‘%s %s‘ >> reports.log",comment,now()); 22 // 调用系统的方法来执行这段命令 23 system(cmd); 24 return 0; 25 }
程序运行的结果是生成了一个文件
但有时候systemt() 函数也会是不安全的
sprintf(cmd, "echo ‘‘&& ls / && echo‘ %s‘ >> reports.log",now());
修改上边的代码,然后会得到这样的结果
列出了根目录下的内容,因此可以使用命令删除文件或启动病毒
时间: 2024-11-05 02:05:14