3.文件写入操作编程_write函数

目录

1.write函数简介:

1.包含的头文件

 2.函数原型

3.函数参数说明:

4.write函数描述 

 5.函数返回值

 2.实现代码demo:


1.write函数简介:

1.包含的头文件

         #include <unistd.h>

 2.函数原型

ssize_t write(int fd, const void *buf, size_t count);

3.函数参数说明:

  • int fd :文件描述符
  • const void *buf :一个无类型的指针buf,是一个缓冲区
  • size_t count:你要写入文件的大小

【整一个函数的意思是:将缓冲区 buf 这个指针指向的位置的内存中的数据,写多少个字节,写到刚打开的文件 fd 里面去。】

4.write函数描述 

DESCRIPTION
       write() writes up to count bytes from the buffer pointed buf to the file referred to by the file descriptor fd.
       write()从指向文件描述符fd引用的文件的缓冲区buf写入字节数。

 5.函数返回值

RETURN VALUE
       On  success,  the  number of bytes written is returned (zero indicates nothing was written).  On error, -1 is returned, and errno is set appropriately.
       如果成功,将返回写入的字节数 (0表示没有写入任何内容)。出现错误时,返回-1,并适当地设置errno。

 2.实现代码demo:

【回忆一个知识点:计算字符串的大小用 strlen 。如果用sizeof只能计算一个指针在linux下的大小8个字节,获取不到全部数据。】

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main()
{
        int fd;
        char *buf = "wenjian chu ru men !";
        
        fd = open("./file1",O_RDWR);   //打开一个file1的文件

        if(fd == -1){
                printf("open file1 fail \n");           
                fd = open("./file1",O_RDWR|O_CREAT,0600);  //如果file1不存在,就创建它 
                if(fd > 0){
                        printf("creat file1 success \n");
                }
        }

        printf("open file1 success: fd = %d \n",fd);

        write(fd,buf,strlen(buf));    //将buf里面的内容写入到fd里面去。计算字符串大小用strlen

        close(fd);      //用open打开一个文件,操作结束了就要关闭close
                                                                                         
        return 0;
}
   

                                                                                   运行结果: 

                ./a.out

                vi file1

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枕上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值