当前位置: 首页 > news >正文

果洛电子商务网站建设哪家快/做互联网项目怎么推广

果洛电子商务网站建设哪家快,做互联网项目怎么推广,17网一起做网店潮汕池尾,wordpress评论数文章目录项目日志stdin(标准输入), stdout(标准输出), stderr(标准出错)重定向箭头实现重定向代码实现重定向项目日志 stdin(标准输入), stdout(标准输出), stderr(标准出错) 在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会打开3个已经打开的st…

文章目录

  • 项目日志
    • stdin(标准输入), stdout(标准输出), stderr(标准出错)
    • 重定向
      • 箭头实现重定向
      • 代码实现重定向

项目日志

stdin(标准输入), stdout(标准输出), stderr(标准出错)

在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会打开3个已经打开的stream. 分别用来输入,输出,打印诊断和错误信息。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其后。

Linux的本质就是一切皆文件,输入输出设备也是以文件形式存在和管理的。   
注意:stderr是不缓存的,stdout则进行行间缓存。接下来我们看下行间缓存的效果,请参考以下代码:

  • strout:会把之前的内容进行缓存,直到遇到换行符一起输出
  • stderr:直接输出
  • 如果不理解,就把下面两个代码运行一下就明白了
#include <stdio.h>
#include <unistd.h>int main(int argc, char** argv)
{for(int i = 0; i < 5; i++){fprintf(stdout, "This is stdout[%d]", i);sleep(1);}putchar('\n');for(int i = 0; i < 5; i++){fprintf(stderr, "This is stderr[%d]", i);sleep(1);}return 0;
}

比较如下代码:

  • 上面两端代码就是在打印的时候加上了"\n"而已,但是效果完全不一样。
#include <stdio.h>
#include <unistd.h>int main(int argc, char** argv)
{for(int i = 0; i < 5; i++){fprintf(stdout, "This is stdout[%d]\n", i);sleep(1);}sleep(1);for(int i = 0; i < 5; i++){fprintf(stderr, "This is stderr[%d]\n", i);sleep(1);}return 0;
}
  • 思考:很多时候我们会用printf打印信息来调试程序,但是如果终端关掉了,那怎么显示printf的调试信息呢?

程序员就获取不到调试信息了,所以把调试信息重定向到一个文件中可以永久保存

重定向

箭头实现重定向

我们来先看这段程序(文件名demo1.c):

#include <stdio.h>int main(int argc, char** argv)
{printf("welcome to qiniu!\n");fprintf(stdout, "I am cui!\n");perror("are you all ready?\n");fprintf(stderr, "cui always stay with you!\n");return 0;
}

在这里插入图片描述

  • 我们试试下面不同的运行方式,
  • 标准输出重定向到文件: ./test > test.txt
    在这里插入图片描述

标准输出和标准出错重定向到文件:./test > test.txt 2>&1
在这里插入图片描述

每一次重定向,输出到文件中,都会从开端写入数据,导致之前的调试信息被覆盖,如果想保存之前的调试信息,那么就只能在重定向文件中追加调试信息 这里把 ‘>’ 换成 ‘>>’ 就可以了

代码实现重定向

另外我们还可以在代码中实现重定向,比如:

#include <stdio.h>int main(void)
{// 重新打开 把stdout以写的方式指向stdout.txtFILE *out = freopen("stdout.txt", "w", stdout);printf("%s\n", "hello verybody!!!");return 0;
}

总的来说,stdin,stdout和stderr还是和终端有密切关系,通常在生产环境时,会将这3个流重定向到其它文件。
如果我们实在要用printf或者fprintf去生成日志的话,最好还是加上这些信息,FILE LINE FUNCTION, DATE, TIME
当然我们一定要明白,printf设计到文件,这会引起IO中断,因此执行printf比一般的指令的效率要低很多。

在这里插入图片描述

http://www.jmfq.cn/news/4929085.html

相关文章:

  • 主流网站建设技术/苏州百度推广公司
  • 360免费网站建设/什么是seo搜索
  • 常州市天宁区建设局网站/搜索引擎排名原理
  • 广州网站优化流程/中国的搜索引擎有哪些
  • 新动力网站建设/公司网页怎么做
  • 陕西省住房与建设厅网站/深圳网络营销网站设计
  • 丰台区网站建设/一级造价工程师
  • 佛山便宜网站建设/外贸建站教程
  • 易企秀做的网站/上海百度推广客服电话多少
  • 做网站租用数据库/seo优化软件
  • 互联网一二线大厂名单/进一步优化营商环境
  • 做公司网站可以抄别人的吗/交换链接营销案例
  • 政府网站建设企业/在线刷高质量外链
  • 比较好的摄影网站/百度seo关键词优化
  • 如何做一间公司的网站/百度一下免费下载安装
  • 捷信做单官方网站/全球网络营销公司排行榜
  • h5建站工具/网络营销专业就业公司
  • 开发一个网站一般需要多少钱/站长工具是什么
  • 免费网站一级域名注册/百度开放平台登录
  • 建材做哪些网站/引流推广怎么做
  • 福州网站建设企业哪家好?/百度广告位价格表
  • 做网站首页ps分辨率多少/网站seo谷歌
  • 中国建设机械委员会网站/搜索引擎营销优缺点
  • 做淘宝客网站哪个好/百度广告联盟网站
  • 幼儿园网站怎样建设/seo优化关键词分类
  • 数码家电商城网站源码/百度快速收录接口
  • 做卖图片的网站能赚钱吗/qq引流推广平台
  • 网站空间到期怎么续费/品牌营销推广要怎么做
  • 电商网站建设应用/市场推广方案范文
  • 互联网网站建设维护/搜索引擎营销方法有哪些