输出内容时后面显示乱码

使用文件操作函数时,我遇到过几次,打印内容时内容没有错误,可是末尾多显示了几个乱码,其实主要是因为字符串末尾没有赋字符串结束符号\0

[root@bogon mycode]# cat a.c
#include<stdio.h>
#include<fcntl.h>
#include<unistd.h>
#define MAX_SIZE 40
int main()
{
    char buf[MAX_SIZE];
    //char buf[MAX_SIZE+1];
    read(STDIN_FILENO,buf,MAX_SIZE);
    //buf[MAX_SIZE]='\0';//如果末尾多了些乱码,可以在末尾添加\0,把前面的定义buf那里换成注释掉的那条语句
    printf("buf is: %s",buf);
    return 0;
}
[root@bogon mycode]# ./a.out
linux
buf is: linux
[root@bogon mycode]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值