linux下C语言printf没有输出的问题(shell的行缓冲机制)
2015-12-30 10:19
585 查看
while(true) { if(recvfrom(sockfd,buf, sizeof(buf), 0, (struct sockaddr*)&src_addr, &len) == -1) { perror("receive failed\n"); return -1; } printf("%s----from %s:%u\n", buf, inet_ntoa(src_addr.sin_addr), ntohl(src_addr.sin_port)); }
这个是udp编程中接收端的程序的一部分,但是你会发现printf没有输出,用gdb调试,发现程序是正常跑的,这是因为shell是存在行缓冲的(每次攒够一行(出现换行符))才会输出,所以这里在printf的末尾加上\n就可以正常输出了
相关文章推荐
- Shell脚本中替换字符串等操作
- bash的特殊用法
- linux shell ping检测脚本
- XSHELL下直接下载文件到本地(Windows)
- keepass实现Xshell自动登录与跳转
- shell编程实战
- 将shell脚本执行情况写入Rsyslog日志服务器
- Shell实现直接发送短信
- shell基础知识
- ssh免密码登录
- 基于jmeter和shell的接口性能自动化
- 正则表达式 linux shell 删除偶数奇数行 取得最后一个字符 s/\(^.*$\)\n^.*$/\1/g
- 收集整理比较全 shell sed 命令与实例教程
- linux2--ssh secure shell client
- powershell 批量生成文件
- shell脚本报错:"[: =: unary operator expected"
- bash shell提示符字符
- 启动spark-shell出现问题,解决办法
- mac shell 初学 变量输入输出
- linux bash shell 判断目录是否为空的函数