首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux系统调用四、lseek()函数详解「建议收藏」

    案例:写文件并把写入内容打屏 ❀2. lseek移动文件读写位置 ❀3. lseek计算文件大小 ❀4. lseek拓展文件大小 ---- ❀1....write(fd, "hello linux...", 15); 我们来测试下程序,首先明确一点,字符串会写入相应文件,但是不会打印在屏幕中,这个后面分析。...❀3. lseek计算文件大小 利用lseek()函数执行成功时的返回值可以来计算一个文件所占字节的大小。...❀4. lseek拓展文件大小 我们知道lseek()函数有三个参数,在前面的案例中,都把第二个参数偏移量offset设置为0来处理的,这样第三个参数就不用加偏移量了,相当于whence位置都是相对于文件首部来计算的...通过对比我们发现,文件大小并未增加。这是因为通过lseek()扩展了文件的大小之后,如果我们没有对该文件进行写操作,那么这个扩展的内容默认是不会保存的,所以文件大小不会改变。

    1.4K10

    linux系统下lseek函数的详细用法

    这个指针不能被直接访问,linux系统用lseek函数来访问这个文件指针------当我们打开一个空文件时,默认情况下文件指针指向文件流的开始。所以这时候去write时写入就是从文件开头位置开始的。...二、从man手册来说lseek函数: 1、还是那句话,在linux系统下有问题,找男人(man手册),哈哈哈哈。...代码示例: https://github.com/1121518wo/linux-/blob/master/文件长度代码示例 演示效果: 3、用lseek构建空洞文件: 1)什么是空洞文件?...代码示例:https://github.com/1121518wo/linux-/blob/master/空洞文件示例https://github.com/1121518wo/linux-/blob/master...三、总结: 今天通过对lseek函数的学习,理解更加深刻了,其实还是那句话,在linux系统下用man手册来学习一个陌生函数时最好的办法了,只是说要有一定的英文水平(其实英文水平差,也不是阻碍学习的理由

    1.7K30

    Linux开发:lseek()函数和fseek()函数的使用详解

    lseek定义 // 头文件 #include #include // 函数定义 off_t lseek(int fd, off_t offset,int...使用特例 lseek(int fd, 0, SEEK_SET) :读写位置移到文件开头 lseek(int fd, 0, SEEK_END) :读写位置移到文件尾 lseek(int fd, 0, SEEK_CUR...) :获取当前文件的读写位置 使用lseek时需要注意的几点: lseek不会改变文件的实际内容,只改变文件描述符的内部偏移量。...如果lseek用于输出文件描述符,并且偏移量超出了当前文件的大小,文件大小将被扩展到新的偏移量。 某些文件类型(如管道、设备文件)可能不支持lseek操作。...它与 lseek 不同,fseek 是针对流的,而 lseek 是针对文件描述符的。fseek 通常用于 FILE* 指针,这是 C 标准 I/O 库中使用的文件流类型。

    59210

    Linux系统调用API】二、read函数、write函数、lseek函数

    name"); return -1; } int fd = open(argv[1], O_RDWR | O_CREAT); write(fd, "hello linux...write(fd, "hello linux...", 15); 我们来测试下程序,首先明确一点,字符串会写入相应文件,但是不会打印在屏幕中,这个后面分析。...3. lseek计算文件大小 利用lseek()函数执行成功时的返回值可以来计算一个文件所占字节的大小。...4. lseek拓展文件大小 我们知道lseek()函数有三个参数,在前面的案例中,都把第二个参数偏移量offset设置为0来处理的,这样第三个参数就不用加偏移量了,相当于whence位置都是相对于文件首部来计算的...通过对比我们发现,文件大小并未增加。这是因为通过lseek()扩展了文件的大小之后,如果我们没有对该文件进行写操作,那么这个扩展的内容默认是不会保存的,所以文件大小不会改变。

    20610

    linux 查看目录大小_shell判断文件大小

    -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。...-D或–dereference-args 显示指定符号连接的源文件大小。 -h或–human-readable 以K,M,G为单位,提高信息的可读性。...-L或–dereference 显示选项中所指定符号连接的源文件大小。 -m或–megabytes 以1MB为单位。...1> 要显示一个目录树及其每个子树的磁盘使用情况 du /home/linux 这在/home/linux目录及其每个子目录中显示了磁盘块数。...3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况 du -m /home/linux 这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。

    11.6K20

    嵌入式Linux:空洞文件

    空洞文件在实际应用中有两个典型场景: 1、在使用迅雷下载文件时,尚未完全下载时文件已经占据整个文件大小的空间,这就是空洞文件的应用。...在 Linux 中,可以通过使用 lseek 和 write 系统调用来创建空洞文件。...\n"); return 0; } 在这个例子中,通过 lseek 将文件指针移动到第 1024 个字节处,然后使用 write 写入一个字节的数据。...在文件系统中,读取空洞文件时,操作系统会将空洞部分的数据补充为0,使得读取的文件内容包含完整的文件大小。...举例说明:如果一个文件大小为1GB,但只有其中的100MB是实际写入数据,其余部分是空洞,读取该文件时,系统会自动将空洞的部分填充为0,以确保读取的文件内容总大小为1GB。

    15300

    LinuxLinux文件IO常规操作

    前言 Linux 文件 IO 操作指的是在 Linux 系统上对文件进行读取和写入的操作。它是通过与文件系统交互来读取和写入文件中的数据。...在 Linux 中,文件被视为一系列字节的有序集合,每个文件都有一个相关联的文件描述符,用于标识该文件的唯一标识符。文件 IO 操作允许程序从文件读取数据或将数据写入文件。...与睡眠状态相对的是运行状态,在Linux内核中,处于运行状态的进程分为两种状态: 正在被调度执行。...读设备文件,读网络文件(读常规文件无阻塞概念) /dev/tty --终端文件 open(“/dev/tty”,ORDWR|O_NONBLOCK)设置/dev/tty非阻塞状态(默认为阻塞状态) lseek...获取文件大小 3.使用lseek拓展文件大小,要想使文件大小真正拓展,必须要引起IO操作。

    27350
    领券