当前位置:  技术问答>linux和unix

如何在UNIX的C编程中使用类似VC里面的TRACE宏?或者有没有类似功能?

    来源: 互联网  发布时间:2016-04-07

    本文导语:  如何分别提供debug和release版本,从而RELEASE版本不输出TRACE到屏幕上的一些信息。 谢谢! | 哈哈,你问我就问对了,你是需要一种Unix下的写日志等一系列的机制把,一般使用宏,比如定义一个...

如何分别提供debug和release版本,从而RELEASE版本不输出TRACE到屏幕上的一些信息。
谢谢!

|
哈哈,你问我就问对了,你是需要一种Unix下的写日志等一系列的机制把,一般使用宏,比如定义一个函数TraceLog,当宏DEBUG有时,他写日志,没有时不写。而且一般还有ASSERT宏,如ASSERT(x),当x为真的时候,不写东西,当x为假时才写,而且将当前文件名和行数也写入了(分别是__FILE__和__LINE__),具体的内容你可以看《精通Unix下C语言编程于项目实践》上面介绍的通用编程库之调试库。第5章部分,上面有详细的解释。

|
用宏定义,在编译时通过编译器选项决定是否打开。
Logging机制的实现可以参考ACE。TRACE和ASSERT都是最简单的应用。标准C里有assert,不需要自己定义。

|
可以自己写makefile文件实现。其实makefile文件比VC的机制灵活的多

|
实现类似于TRACE:

#ifndef __DEBUG_H_
#define __DEBUG_H_

#undef PDEBUG
#ifdef BUFFBAK_DEBUG
#   ifdef __KERNEL__
#       define  PDEBUG(fmt,args...) printk( 
                          KERN_ALERT"buffer_backup[%s L%d]:"fmt, 
                          __FILE__,__LINE__,args )
#   else
#       define  PDEBUG(fmt,args...) printf(
                                       "buffer_backup[%s L%d]:"fmt,
                                       __FILE__,__LINE__,args)
#   endif
#else
#   define PDEBUG(fmt,args...)
#endif


|
日志其实就是写道一个文件而已。比如TraceLog(stderr, "%s", cc"),用stderr就是写道屏幕上,用stdout也是,如果是其它的文件,就是写道文件中去,很方便的。

    
 
 

您可能感兴趣的文章:

  • 谁有介绍UNIX下面函数的书啊,类似UNIX编程参考手册的东西
  • UNIX下面能否使用类似BCP的程序连接另一台UNIX下面的Sybase数据库进行数据处理
  • UNIX中有类似WIN的注册表吗
  • 求助:在Unix系统下有没有类似IIS服务的的组件
  • 请问Unix中提供类似于Win2000的Dfs功能么?
  • unix系统有没有本地数据库?类似windows下的access
  • 菜鸟提问:请问Unix下面有没有类似Win32下_T这样的宏?
  • unix/linux api有类似msdn的手册么?
  • java 在Unix下有没有类似于Windows SDK的东西
  • 送分! UNIX C编程。 如何休眠5秒钟? 类似WINDOWS下的Sleep(5000).
  • sco unix中类似reg.sco的文件怎么执行?
  • 如何在登陆UNIX系统后,在类似DOS模式下给LAN中的WINDOW系统发送信息
  • UNIX C函数中是否有类似“ls”的函数调用?
  • linux或unix中有类似注册表一样的东西吗?如果没有,注册表的功能是通过什么实现的呢?
  • 在Unix环境下用gcc如何编译成动态链接库文件?类似Windows下的DLL文件。
  • UNIX上C++编程有没有什么类似msdn的帮助手册?
  • 请问在linux/unix上面怎么使用计时器阿,类似windows上面的Timer这样的
  • 在unix下哪些函数对应了类似fp_off()和fp_seg()的啊,请知道的进来说下!!!急等!!!
  • Unix里编写动态库时会不会像Windows一样在源代码中含有Dllmain()类似的主函数?
  • 有谁帮忙贴一些unix/linux的系统函数(与windows的signal、semaphore、task类似的)
  • 有没有方法在 非solaris 的 unix下,比如说 sco unix 下面,使用 j2se 的方法!
  • unix IRIX6.5上有没有断点调试工具
  • 学习UNIX,有没有好书推荐
  • 有没有在UNIX上使用的杀毒软件?
  • 有没有什么工具可以在windows环境下生成unix用的.so文件
  • 我是一位非计算机专业的研究生,想学习unix系统、网络管理员,并获得sun公司的认证证书,以后想从事unix环境下的开发工作,请各位指点一下,有没有可能?
  • 有没有操作unix风格配置文件的函数库?
  • 在unix中有没有ucs2编码与中文的转换函数???
  • UNIX C有没有什么函数能直接取到网卡的IP地址和MAC地址?
  • 有没有关于Unix的中文网站?
  • 有没有关于UNIX下驱动程序开发的书,可以是SUN,SCO平台的,但不要LINUX下的。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高级UNIX编程和UNIX环境高级编程是不是一本书
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 想看linux内核源代码,另外手头上有一本《unix环境高级编程》,需要先把《unix环境高级编程》看完之后再看内核吗?
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • 想学linux下程序开发,不知道买哪本书好《UNIX环境高级编程》(中文第一版)还是《UNIX环境高级编程》(英文第二版)
  • unix编程与linux编程有什么区别?
  • [学习UNIX编程]初学UNIX编程,遇到一个小小的问题,烦劳大虾帮忙解惑,谢谢!
  • 看Unix环境高级编程,提到了V和bsd,有很多不同,但是没有提到Linux,请问linux跟BSD或者unix V 编程细节哪些不同的,特别是线程,进程,和socke
  • 都说《UNIX环境高级编程》好,对于学linux编程好不好?《Linux下的c编程》《嵌入式系统C编程》那个更适合初学者?各是那个出版社的?(
  • 我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
  • 我学&用Linux编程,手里有《UNIX环境高级编程》,看它行吗?
  • UNIX编程艺术,了解unix文化强烈推荐这本书
  • UP有分,推荐几本书给我吧,兄弟们,UNIX入门与编程的与编程的,
  • 学Linux编程前要学Unix吗?哪里有学Linux编程的好书下载?
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • 请问:如果懂unix编程,那么会懂linux编程吗?一般来说:它们有什么关系呢?
  • 都说《UNIX环境高级编程》好,对于学linux编程好不好?是那个出版社的,是中文版吗?
  • 学习UNIX编程应该从那里入手?
  • 请教:我想在unix编程领域发展,我应该在哪些方面努力?
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • unix/Linux下c++ boost thread库读写锁介绍
  • 没有unix系统我如何学习unix
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • php将unix时间戳转换成字符串时间函数(date)
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • UNIX支持中文否,请推荐UNIX好书


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3