知识杂记

小知识杂记:

注记: 定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。

memset()函数:

函数定义

# include <string.h>
void *memset(void *s, int c, unsigned long n);

函数说明:memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的;
包含在<string.h>头文件中,可以用它对一片内存空间逐字节进行初始化;

函数参数
s可以是数组名,也可以是指向某一内在空间的指针;
v为要填充的值;
n为要填充的字节数;

write()函数:

函数定义:ssize_t write (int fd, const void * buf, size_t count);

函数说明:write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。

返回值:如果顺利write()会返回实际写入的字节数(len)。当有错误发生时则返回-1,错误代码存入errno中。

read()函数

函数定义:ssize_t read(int fd, void * buf, size_t count);

函数说明:read()会把参数fd所指的文件传送count 个字节到buf 指针所指的内存中。

返回值:返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据。若参数count 为0, 则read()不会有作用并返回0。
> 0: 实际读到的字节数
= 0: 读完数据(读文件, 管道, socket末尾–>对端关闭, 对端未关闭会一直等待)
-1: 异常:
  errno == EINTR被信号中断, 重启或者退出
  errno == EAGAIN或者EWOULDBLOCK以非阻塞方式读, 并且没有数据
  其他值: 出现错误perror eixt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值