首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

read函数的返回值问题

Read函数读取字符串返回值的问题 1. 前言 在学习socket编程的途中, 通过客户端给服务端发送字符串,然后服务端通过read或者recv来读取数据,然后返回读取的字节数....我在想read返回的读取字节数有没有包含'\0'或者'\n'呢,于是通过一些简单的小例子,来看看实际情况到底如何. 2. read函数 我们来看一下read函数的原型: ssize_t read(int...大概的意思就是read函数从文件描述符fd中读取字节到count大小的buf中,如果成功读取的话,返回读到的字节数大小,否则返回-1....很显而易见,buf只读取了hello,没有了换行符,所以导致第一行和下一行连在一起了. read函数返回的字节大小和strlen返回的字符串长度都是5,验证了这一点. 5....,不是结束符'\0'的大小. read函数读取不包含'\0', strlen读取的也不包含'\0' read在文件中读取字符串可以不包含换行符. 6.

2.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -p "输入密码:" -s pd 密码: > echo $pd 123456 原文链接:https://rumenz.com/rumenbiji/linux-read.html 微信公众号

2.1K00

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -d ":" rumenz 读入数组 > read -a rumenz 123 456 789 > echo ${rumenz[*]} 123 456 789 终端输入密码时候,不让密码显示出来

1.9K40

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -p "输入密码:" -s pd 密码: > echo $pd 123456 原文链接:https://rumenz.com/rumenbiji/linux-read.html

1.8K00

Linux tcpip 源码分析 - read

之后又调用call_read_iter方法,传入这些新的参数,继续执行read逻辑 // include/linux/fs.h static inline ssize_t call_read_iter...设置变量copied的值为0,该变量用于记录拷贝tcp数据到用户提供的buf的字节数,最终返回给用户。 2....进入while循环,该循环继续的条件为len>0,即剩余要拷贝给用户的数据的字节数大于0。 6....当条件不满足时,则看当前sock是否有异常发生,比如error或close等,如果有异常,则看copied值是否大于0,如果大于0,则先不管当前异常,跳出while循环,返回当前copied的值。...如果有异常,且copied的值为0,则根据异常情况,设置相应的错误码,然后跳出循环,返回错误码给用户。 11.

3K20

0x00000000该内存不能为read

当分配失败时系统函数会返回一个0值。这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。 作为应用程序,在每一次申请内存后都应该检查返回值是否为0,假设是。...例二:有些应用程序错误: “0x7cd64998” 指令參考的 “0x14c96730” 内存。 该内存不能为 “read”。...每次都提示“0x060692f6”(每次变化)指令引用的“0xff000011”内存不能为“read”。终止程序请按确定。...例六:双击一个游戏的快捷方式,“0x77f5cd0”指令引用“0xffffffff”内 存。该内存不能为“read” 。而且提示Client.dat程序错误。...当分配失败时系统函数会返回一个0值。这时返回值「0」已不表示新启用的游标。而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序。在每一次申请内存后都应该检查返回值是否为0。假设是。

1.3K20

C语言函数返回 1 和返回 0 哪个好?

按照C语言语法, 0 表示假,非零(常常用 1)表示真,那是否函数也用 0 返回值表示“失败”,1 返回值表示“成功”呢?...02 行业“潜规则” C语言函数当然可以使用返回0 表示“失败”,用返回值 1 表示“成功”。...C语言也有“行业潜规则”,不过,对于一般的函数,大多数C语言程序员常常使用返回0 表示成功,非零值表示失败。...仔细考虑下,其实C语言函数使用返回0 表示成功是有原因的。更一般的C语言函数返回值并不一定只有两种可能值(成功/失败),它可能还会返回对应错误原因的返回值。...实数要么是 0,要么非 0,因此可以将 0 看作一个比较特殊的“唯一”数值,使用 0 这个“唯一”的返回值,表示唯一的“成功”,多种非零的返回值,表示多种原因的失败,无疑更好一些。

2.5K20

【高级编程】Linux read系统调用

例如read系统调用,0x80 中断处理程序接管执行后,先检查其系统调用号,然后根据系统调用号查找系统调用表,并从系统调用表中得到处理 read 系统调用的内核函数 sys_read ,最后传递参数并运行...fd_install:以文件描述符为索引,关联当前进程描述符和上述的 file 对象,为之后的 read 和 write 等操作作准备。 函数最后返回该文件的文件描述符。 4.3....为了满足普遍性要求,linux使用定义在linux/fs.h中的结构体address_space结构体描述页高速缓存中的页面。...试图将当前请求同请求队列中现有的请求合并,如果合并成功,则函数返回,否则跳到3。 该请求是一个新请求,创建新的请求描述符,并初始化相应的域,并将该请求描述符加入到请求队列中,函数返回。...之后,函数 sys_read 可以返回了。最终 read 系统调用也可以返回了。 至此, read 系统调用从发出到结束的整个处理过程就全部结束了。

5.9K110
领券