linux下printf函数把数据输出到了socket的解决办法

目录

  • 一、参考资料
  • 二、标准输入输出
  • 三、程序中BUG

一、参考资料

Linux printf 输出 重定向输出 无法打印问题分析以及解决方法

linux的标准输入输出

嵌入式调试printf重定向到文件

区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn

二、标准输入输出

文件描述符 缩写 描述
0 STDIN 标准输入
1 STDOUT 标准输出
2 STDERR 标准错误输出

三、程序中BUG

问题出现在这里:

	printf("bug\r\n");
	send(sock, "hello\r\n" ,100,0);	//发送ID
	printf("nihao\r\n");

正常应该是:
pritnf打印到调试终端上。
send发送数据,到TCP另一端。

结果,第二行,第三行都打印到了TCP调试助手,现象如下图:
linux下printf函数把数据输出到了socket的解决办法_第1张图片

send函数原型:

#include 
#include 
ssize_t send(int sockfd, const void *buf, size_t len, int flags);

第三个参数为发送的数据长度,这里不能设置为100。
将其改成实际大小,问题就解决了。

	printf("bug\r\n");
	send(sock, "hello\r\n" ,7,0);	//发送ID
	printf("nihao\r\n");

你可能感兴趣的:(LINUX)