精华内容
下载资源
问答
  • 2022-03-08 09:46:37

    1、write函数

    头文件#include <unistd.h>

    三个参数

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

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

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

    第一个参数 文件描述符fd

    第二个参数 无类型的指针buf,可以存放要写的内容

    第三个参数 写多少字节数

    strlen()用来读取长度

    所用虚拟机操作系统为ubuntu.18具体实例如下

     

    更多相关内容
  • 当读或写一个文件时,使用open或create返回的文件描述符表示该文件,将其作为参数传给read或write函数。  2、write函数  write函数定义如下:  #include  ssize_t write(int filedes, void *buf, size_t ...
  • LWIP中tcp_write函数的理解 对lwip协议的一些分析
  • 1、write函数的函数原型 #include <unistd.h> ssize_t write(int fd,const void *buf,size_t count) ssize_t write(int fd,const void *buf,size_t count) 指的是把count字节的数据从buf指向的缓冲区写到文件...

    1、write函数的函数原型

    #include <unistd.h>
    ssize_t write(int fd,const void *buf,size_t count);
    

    ssize_t write(int fd,const void *buf,size_t count) 指的是把count字节的数据从buf指向的缓冲区写到文件描述符为fd的指向的文件中,它实际返回的值是实际写入的个数。
    ubuntu界面利用man手册可查看write函数的相关信息,该函数的头文件与read、close的头文件一致;write函数的返回值是ssize_t类型的,如果成功的话,它的返回值是实际写入的个数,如果失败,则返回-1.
    2、关于write函数的简单例子
    在刚开始接触文件描述符的概念的时候,了解到“文件描述符0,1,2分别对应的是标准输入、标准输出、标准出错”,针对实现“在屏幕上显示一些东西”来写一个简单的程序。
    如何实现呢?屏幕相当于是标准输出,标准输出对应的文件描述符是1,试一下将文件描述符改为1,看是否可以执行成功。write.c代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    int main(int argc,char *argv[]) 
    {
    	int fd;
    	char buf[32]={0};
    	ssize_t ret;
    	write(1,"hello\n",6);
    	close(fd);
    	return 0;
    }
    

    write(1,“hello\n”,6);意思指:把6个字节的数据从地址“hello\n”写入write.c文件中,在ubuntu中的gcc编译器编译结果为write,运行结果为成功写入“hello”
    在这里插入图片描述
    3、考虑:如何往文件里面写入数据?
    在write.c文件中做出修改,修改如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    int main(int argc,char *argv[]) 
    {
    	int fd;
    	char buf[32]={0};
    	ssize_t ret;
    
    	
    	fd = open("a.c",O_RDWR);
    	if(fd<0){
    		printf("open is error\n");
    		return -1;
    		}
    		printf("fd is %d\n",fd);
    	
    	write(fd,"hello\n",6);
    	close(fd);
    	return 0;
    }
    

    在上一步中,已经将a.c文件编辑成了空文件,这次的代码修改是为了实现将“hello\n”写入文件a.c中,由“cat a.c”的结果可以看出内容写入成功!(编译后的文件命名为write1)
    在这里插入图片描述
    有一点值得注意:在打开a.c文件的时候,需要赋予它写的权限,如果未赋予它写的权限,写入操作不会执行成功。再做一个测试,将a.c文件中的内容清空,将a.c文件的权限改为只读O_RDONLY,将编译后形成的可执行文件命名为write2,观察运行结果:
    在这里插入图片描述

    展开全文
  • 一、write函数手册上的定义 write函数需要包含头文件 #include <unistd.h> 函数原型:ssize_t write(int fd, const void *buf, size_t count); 参数buf所指的内存写入count个字节到参数fd所指的文件内 fd为...

    一、write函数手册上的定义

    在这里插入图片描述
    write函数需要包含头文件 #include <unistd.h>

    函数原型:ssize_t write(int fd, const void *buf, size_t count);
    参数buf所指的内存写入count个字节到参数fd所指的文件内
    fd为需要写入的目标文件的描述符,buf为需要写入的字符串,第三个 参数是需要写入的长度。

    返回值:
    成功:返回写入的字节数
    失败:返回-1并设置errno

    二、write函数编程测试

    #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="wo hen shuai";
    
            fd=open("./file1",O_RDWR);
    
            if(fd==-1){
                    printf("open file1 failed\n");
                    fd=open("./file1",O_RDWR|O_CREAT,0600);
                    if(fd>0){
                            printf("creat file1 success\n");
                    }
            }
            printf("open successs fd=%d\n",fd);
            //        ssize_t write(int fd, const void *buf, size_t count);
            write(fd,buf,strlen(buf));
            close(fd);
            return 0;
    }
    

    最后gcc编译,打开file1文件发现已经写入我们写的内容了
    在这里插入图片描述

    展开全文
  • write函数的详细用法

    2010-08-26 13:45:24
    write函数的详细用法 ssize_t write(int fd, const void *buf, size_t count); 参数: fd: 要进行写操作的文件描述词。 buf: 需要输出的缓冲区 count:最大输出字节计数
  • Linux系统—read、write函数 ssize_t read(int fd, void *buf, size_t count); //将文件中的数据读入内存 ssize_t write(int fd, const void *buf, size_t count); //把内存中的数据写入到文件里 实现文件拷贝: ...

    Linux系统—read、write函数

    ssize_t read(int fd, void *buf, size_t count);
    //将文件中的数据读入内存
    
    ssize_t write(int fd, const void *buf, size_t count);
    //把内存中的数据写入到文件里
    

    实现文件拷贝:
    在这里插入图片描述

    1.1 read函数

    输入以下命令查看函数帮助文档:

    man 2 read/write
    
    #include <unistd.h>
    ssize_t read(int fd, void *buf, size_t count);
    
    • 参数
      • fd: 文件描述符,open得到的,通过这个文件描述符操作某个文件
      • buf:需要读取数据存放的地方,数组的地址传出参数
        • 传出参数:传入一个空的数组进去,函数将内容保存到数组后,可以通过数组取数据
      • count:指定的数组的大小
    • 返回值
      • 成功
        • >0:返回实际的读取到的字节数
        • =0:文件已经读取完了
      • 失败:返回-1,并且设置errno

    1.2 write函数

    #include <unistd.h>
    ssize_t write(int fd, const void *buf, size_t count);
    
    • 参数
      • fd:文件描述符,open得到,通过文件描述符操作某个文件
      • buf:要往磁盘写入的数据
      • count:要写的数据的实际的大小
    • 返回值
      • 成功:返回实际写入的字节数
      • 失败:返回-1,并设置合适的errno

    1.3 实现文件拷贝

    编写copyfile.c:

    #include <unistd.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    int main() {
    
        // 1. 通过open打开english.txt文件,只读
        int srcfd = open("english.txt", O_RDONLY);
    
        if(srcfd == -1) {
            perror("open");
            return -1;
        }
        // 2. 创建一个新的文件(拷贝文件),只写
        int destfd = open("cpy.txt", O_WRONLY | O_CREAT, 0664);
        
        if(destfd == -1) {
            perror("open");
            return -1;
        }
        // 3. 频繁的读写操作
        // 创建缓冲区
        char buf[1024] = {0};
    
        int len = 0;
        while(( len = read(srcfd, buf, sizeof(buf)) ) > 0 ) {
            // 每读一次数据,就写入到拷贝文件中
            write(destfd, buf, len);
        }
    
        // 4. 关闭文件
        close(srcfd);
        close(destfd);
        
        return 0;
    }
    

    在终端中GCC编译并运行,得到拷贝文件cpy.txt

    fuerer@fuerer-virtual-machine:~/Linux/lesson10$ ls
    copyfile.c  english.txt
    fuerer@fuerer-virtual-machine:~/Linux/lesson10$ gcc copyfile.c -o copy
    fuerer@fuerer-virtual-machine:~/Linux/lesson10$ ls
    copy  copyfile.c  english.txt
    fuerer@fuerer-virtual-machine:~/Linux/lesson10$ ./copy
    fuerer@fuerer-virtual-machine:~/Linux/lesson10$ ll
    总用量 280
    drwxrwxr-x  2 fuerer fuerer   4096 324 10:31 ./
    drwxrwxr-x 11 fuerer fuerer   4096 324 10:02 ../
    -rwxrwxr-x  1 fuerer fuerer   8528 324 10:31 copy*
    -rw-rw-r--  1 fuerer fuerer   1792 324 10:31 copyfile.c
    -rw-rw-r--  1 fuerer fuerer 129772 324 10:31 cpy.txt
    -rw-rw-r--  1 fuerer fuerer 129772 324 10:21 english.txt
    

    cpy.txt与english.txt大小均为 129772 个字节

    展开全文
  • linux write函数耗时分析

    千次阅读 2019-08-13 14:46:23
    1. 应用程序调用write,陷入内核执行vfs_write函数,将数据写入页高速缓存(每个缓存页包含若干个缓冲区)。而在写入之前需要(1)检查页是否在回写,如果正在回写则挂起进程,等待回写标志清空时唤醒进程;(2)...
  • write函数返回值的思考

    千次阅读 2021-02-07 15:55:16
    /*Begin: add by yanhaifeng in 2021.02.04 for ...ret = write(fd, buf + len_sent, len - len_sent); l_error = errno; nwy_Printf("write return:%d,errno:%d", len_sent, l_error); if (ret > 0){ len_s...
  • C++ read函数与write函数

    千次阅读 2020-02-03 22:18:05
    read和write函数为Linux系统函数,都需要包含头文件:<unistd.h> read函数 read系统函数从打开的设备或文件中读取数据,即将数据从外设上经过内核读到用户空间,函数原型如下: #include <unistd.h&...
  • IO中write函数

    千次阅读 2020-08-11 14:51:59
    功能:从文件fd中读取count字节的数据存储到buf 参数:count:期望读取的字节数 返回:成功返回读取的字节数,读到文件结尾返回0,失败返回-1 ssize_t write(int fd, const void *buf, size_t count); 功能:将buf...
  • 18.QT中的write函数

    千次阅读 2021-10-20 09:09:48
    后面发现write函数用错了, 1.write(const char *data), Writes data from a zero-terminated string of 8-bit characters to the device. Returns the number of bytes that were actually written, or -1 if an ...
  • fatfs文件系统详解之f_write函数分析

    千次阅读 2020-05-31 18:36:43
    本篇分析f_write()函数,fatfs文件系统对应的不知道文件的读写,也对应了文件的其他的操作,也有文件夹的操作,函数分析确实是一个非常耗时耗精力的事情,此函数分析完之后,就结束函数分析。 分析假设 (1)假设一...
  • Linux中write函数

    千次阅读 2020-03-02 11:18:11
    功能: 向文件中写入数据 头文件: #include <...write(int fd, const void *buf, size_t count); 参数: fd: 文件描述符 buf: 存放要写入的数据的缓冲区首地址 count: 想要写入的字...
  • 3.文件写入操作编程_write函数

    千次阅读 2021-04-15 23:03:17
    1.write函数简介: 1.包含的头文件 #include <unistd.h> 2.函数原型 ssize_t write(int fd, const void *buf, size_t count); 3.函数参数说明: int fd :文件描述符 const void *buf :一个无类型的...
  • CANoe的输出打印窗口是有一个单独的打印窗口的,叫做 "Write"窗口。进入方式为Home -> Write。对于截图中的内容来说,这边记录了多次的诊断请求与诊断响应。系统的启动也会有一些内容打印,这样我们就可以类似于...
  • 系统调用(三)——read/write函数

    千次阅读 2022-03-20 22:16:59
    文章目录 1:查看man手册 2:read/write函数 3:strace命令 4:实现简单cp功能 5:缓冲区 6:错误处理函数 7:预读入缓输出 1:查看man手册 man 2 read man 2 write 注意: [ zero indicates end of file ] [ On ...
  • 学习了write函数和read函数时总把里面的参数弄混,今天特地写这篇博客将这两个函数的各个参数弄明白。同时还要明白read和fread的区别,write和fwrite的区别。 write函数 函数原型:ssize_t write(int fd,const ...
  • analysis_port的write函数会依次获取与其相连的analysis_imp,并调用analysis_imp的write函数; reference: src/tlm1/uvm_analysis_port.svh 在analysis_imp的函数内部,会调用analysis_imp所在uvm_component的...
  • pipe函数、read函数和write函数

    千次阅读 2020-04-15 17:05:21
    简单来说就是从文件描述符fd中读取count字符给buf write(): 跟read是一样的道理。 #include #include #include #include int main(void) { int fd[2]; int ret; pid_t pid; ret = pipe(fd); if(ret == -1) { ...
  • read和write函数的使用

    万次阅读 2019-03-19 17:06:42
    write系统函数相反,向打开的设备或文件中写入数据,即将数据从用户空间(I/O缓冲)送到内核,然后刷到外设上。它们的函数原型如下: ssize_t read(int fd, void *buf, size_t count); ssize_t为有符号...
  • C语言read和write函数解析

    万次阅读 多人点赞 2018-11-16 13:30:31
    在研究一份AES加密代码的时候,发现代码从command line获取数据仅仅使用了read函数,很是...顺带了write函数,他们是couple一对儿!!! 主要参考文章:https://blog.csdn.net/dangzhangjing97/article/details/796198...
  • Linux write 函数深入了解

    千次阅读 2018-09-02 22:15:11
    write函数 函数定义如下: &amp;gt; #include &amp;lt;unistd&amp;gt; &amp;gt; ssize_t write(int filedes, void *buf, size_t nbytes); &amp;gt; // 返回:若成功则返回写入的字节数,若...
  • write函数的详解与read函数的详解

    万次阅读 多人点赞 2018-03-20 00:39:46
    write() 头文件:#include&lt;unistd.h&gt; 原型: ssize_t write(int fd,const void*buf,size_t count); 参数说明: fd:是文件描述符(write所对应的是写,即就是1) buf:通常是一个字符串,需要...
  • 使用write函数遇到的问题

    千次阅读 2018-04-26 20:25:46
    write有两种用法。一种是:ssize_t write(int fd, const void *buf, size_t nbyte); fd:文件描述符; buf:指定的缓冲区,即...write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错...
  • open函数:头文件 #include /*提供类型pid_t,size_t的定义*/ #include #include 函数原型 int open(const char *path, int oflags,mode_t mode); 函数说明 open建立了一条到文件或设备的访问...
  • write(data) data为要写入的数据,可以为字符串str类型,也可以是bytes类型。 返回值为实际写入的数据数,在写入数据为str类型时,该数据为实际写入的UNIOCODE字符数,在写入数据为bytes类型时,该数据为实际写入的...
  • C++:write函数出错

    千次阅读 2019-02-20 21:36:43
    串口打开设置成功,也可以成功接收,但是发送一直出错返回-1。 检查了open函数,发现是可读写的: ...我在派生类中又重写了open函数,重写的open函数中,是只读模式打开的,导致没有权限去发送。 总结...
  • Linux里read函数和write函数使用

    千次阅读 2019-05-08 21:57:22
    extern ssize_t write (int __fd, const void *__buf, size_t __n); extern ssize_t read (int __fd, void *__buf, size_t __nbytes); 一、write() 1.参数一为被写入的文件对应的文件描述符,第二个参数为缓存区,第...
  • C++ 中read和write函数

    万次阅读 2018-01-17 11:55:22
    write 函数向 filedes 中写入 nbytes 字节数据,数据来源为 buf 。返回值一般总是等于 nbytes,否则就是出错了。常见的出错原因是磁盘空间满了或者超过了文件大小限制。        对于普通文件,写操作始于 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 921,462
精华内容 368,584
关键字:

write函数

友情链接: 02.zip