~
如果你有一系列 C 源文件,想为每个函数添加一句 access log,来方便的知道函数执行流程的话,这篇文章会告诉你一个特定范例下的实践方式。
下面是本文中的 C 源文件格式范例:
voIDfunction1(int a,int b){ ... }static int _function2(){ ... }static char*function3(char b,int x,double z){ ... }typedef struct{ int x; int y; char z;} some_type;
(本文来自:blog.csdn.net/prevention)简单地说,就是类似于 Nginx 等优秀 C 开源项目的源文件书写风格。加上一句 access log 后变为:
int b){//printf("zc: function1\n") ... }static int _function2(){//printf("zc: _function2\n") ... }static char*function3(char b,double z){//printf("zc: function3\n") ... }typedef struct{ int x; int y; char z;} some_type;
如何实现呢?肯定要用到:
file IO; regex;@files = glob "*.c";foreach $arg (@files) { open SRCfile,"<:enCoding(UTF-8)",$arg; open DSTfile,0)">">:enCoding(UTF-8)",0)">"../" . $arg; $ready = !!0; select DSTfile; foreach (<SRCfile>) { if (!$ready && /\A(.+)\(.*\)\n/s) { $funcname = ;# . "\n"; $ready = !!1; print $_; } elsif (/\A\{\n/s) { print "{//printf(\"zc: " . $funcname . "\n\")" . "\n"; # write this string into the dst file $ready = !!0; } else { print $_; } } $| = 1; select STDOUT; close DSTfile; close SRCfile;}
上面的知识点有:
open 输入和输出(《Perl语言入门》P102) 改变默认的文件输出句柄(《Perl语言入门》P111) foreach 循环控制(《Perl语言入门》P187) glob 数组 布尔值小技巧 正则表达式 字符串连接原文链接:blog.csdn.net/prevention
~
总结以上是内存溢出为你收集整理的Perl背包客日记(1):为源码文件所有函数添加 access log全部内容,希望文章能够帮你解决Perl背包客日记(1):为源码文件所有函数添加 access log所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)