关于LOG

main函数中重定向stderrfile时候

    sprintf(stderrfile,"%s/log/%s_%s.log, getenv("BANKDIR"), argv([0]), argv[2]);
    freopen(stderrfile, "w", stderr);

    比如程序名为Blnintp,那么运行时候 Blnintp 3 1 就会有生成日志 $(BANKDIR)/log/Blnintp_1.log
    $(BANKDIR)为环境变量里面的BANKDIR内容

    但是这样写有限制,就是运行Blnintp的时候是在当前路径下直接使用命令 Blnintp 3 1,但是如果运行此可执行程序用的全路径名的话就会有错误生成,比如Blnintp程序的全路径为/usr/bin/Blnintp

    那么这段语句应该写成:
    sprintf(stderrfile,"%s/log/%s_%s.log, getenv("BANKDIR"), basename(argv([0])), argv[2]);
    freopen(stderrfile, "w", stderr);

    这个basename会去掉路径,只保留命令,这样,同样生成日志 $(BANKDIR)/log/Blnintp_1.log

  注意,这个basename函数需要加入.h(名字后面补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值