码迷,mamicode.com
首页 > 系统相关 > 详细

c 进程和系统调用

时间:2016-07-01 18:28:42      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

这一篇博客讲解进程和系统调用相关的知识

有这样一个场景,我需要输入一串文字,然后把我输入的文字加上一个本地的时间戳 保存在一个文件中,可以初步理解为一个备忘录也行

 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());

修改上边的代码,然后会得到这样的结果

技术分享

列出了根目录下的内容,因此可以使用命令删除文件或启动病毒

 

c 进程和系统调用

标签:

原文地址:http://www.cnblogs.com/machao/p/5633793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!