Linux作业-------有一个文件夹,下面有许多个C语言源程序。要求编写一个程序,统计所有C语言源程序中,下列系统函数的被调用次数。
printf open close read write fork signal
统计结果输出到myresult.txt文件按中,格式如下:
printf 49
open 13
close 13
read 24
write 16
fork 8
signal 0
介绍
1.主程序用来将九个.c文件中的内容统计到一个data.txt中,对八个.c文件生成一个子程序,读者可自行查看main.c源码及注释以了解细节,main.c make运行后可生成两个.txt文件,data.txt用来存储所有.c文件的文本信息,方便处理,myresult.txt用来显示最终统计结果,在main.c中主要需解决的问题是必须先创建好data.txt,这样才可重复调用rop()函数来实现每个文本的写入其中逻辑关系读者可自行查看上述main.c主函数的for循环内语句。
2. data.txt完成后再用shell编程进行结果输入到myresult.txt中,需用在输入语句sh shel,运行shel,shel中用echo的打印内容输出重定向到myresult.txt中,其中用强大的grep文本处理,-c表示仅列出包含模式的行数,由于需统计的函数均单处一行,所以此方法可行,同样输出重定向到myresult.txt中。
3. 在虚拟机中进行。
主程序—main.c
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
void op(int fd,char s[]){
fd=open(s,O_RDWR,0644);
char buf[1024];
int fd0;
fd0=open("data.txt",O_CREAT | O_RDWR,0644);
int flag;
while(flag = read(fd