Perl背包客日记(1):为源码文件所有函数添加 access log

Perl背包客日记(1):为源码文件所有函数添加 access log,第1张

概述Perl背包客日记(1):为源码文件所有函数添加 access log 作者:苏 原文链接:blog.csdn.net/prevention ~ 如果你有一系列 C 源文件,想为每个函数添加一句 access log,来方便的知道函数执行流程的话,这篇文章会告诉你一个特定范例下的实践方式。 下面是本文中的 C 源文件格式范例: voidfunction1(int a, int b){

Perl背包客日记(1):为源码文件所有函数添加 access log 作者:苏 原文链接:blog.csdn.net/prevention

~

如果你有一系列 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存