[20170925]建立文件分配大小.txt

简介: [20170925]建立文件分配大小.txt --//有时候工作需要建立一个文件.一般在linux下使用dd.总结一下其他方法: 1.方法1: $ cat a.c #include #include #include #include #inc...
[20170925]建立文件分配大小.txt

--//有时候工作需要建立一个文件.一般在linux下使用dd.总结一下其他方法:

1.方法1:

$ cat a.c

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/io.h>
#include <stdio.h>
int main()
{
    FILE* file = fopen ("test", "w+");
    fseek (file, 64, SEEK_SET);
    fprintf (file, "x");
    fclose (file);
    return 0;
}

$ gcc a.c
$ ./a.out

$ xxd -c 16 test
0000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000040: 78                                       x

--//偏移从0记数,这样建立的文件大小是65字节.

2.方法2:.fallocate

--//实际上linux下有一个命令建立与分配文件大小.fallocate命令.我仅仅知道centos6.X版本有这个命令.
--//按照man文档的提示:内核版本是2.6.31.

# man fallocate

FALLOCATE(1)                                                      FALLOCATE(1)

NAME
       fallocate - preallocate space to a file.

SYNOPSIS
       fallocate [-n] [-o offset] -l length filename

DESCRIPTION
       fallocate  is  used to preallocate blocks to a file.  For filesystems which support the fallocate system call,
       this is done quickly by allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.
       This is much faster than creating a file by filling it with zeros.

       As of the Linux Kernel v2.6.31, the fallocate system call is supported by the btrfs, ext4, ocfs2, and xfs
       filesystems.

       The exit code returned by fallocate is 0 on success and 1 on failure.

#  fallocate -l 10 a
#  ls -l a
-rw-r--r-- 1 root root 10 2017-09-25 15:23:28 a

3.windows下:

--//windows下:
R:\>fsutil file createnew test.out 64
已创建文件 R:\test.out

R:\>dir test.out
 驱动器 R 中的卷是 RAMDISK
 卷的序列号是 0122-14E0

 R:\ 的目录

2017/09/25  15:21                64 test.out
               1 个文件             64 字节
               0 个目录    652,371,968 可用字节

R:\>d:\tools\Vim\vim74\xxd.exe -c 16 test.out
0000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
目录
相关文章
|
SQL Oracle 关系型数据库
[20180328]不要在sys建立用户对象.txt
[20180328]不要在sys建立用户对象.txt --//好几年前遇到的问题,开发安装UTL_DBWS在linux下遇到问题,最后选择winows下安装. --//随着业务增加,无法支撑,需要数据库组迁移到linux下,也就是我当时的安装笔记: --//http://blog.
993 0
|
缓存 网络协议 关系型数据库
[20180316]共享服务模式和直接路径读.txt
[20180316]共享服务模式和直接路径读.txt --//在共享服务器模式下,执行计划不会选择直接路径读,通过例子证明. 1.环境: SYS@book> @ &r/ver1 PORT_STRING          VERSION    BANNER...
880 0
|
缓存 关系型数据库 Oracle
[20171120]11G关闭直接路径读.txt
[20171120]11G关闭直接路径读.txt --//今天做filesystemio_options参数测试时,遇到一个关于直接路径读的问题. --//如果看以前的博客介绍,设置"_serial_direct_read"=never或者events '10949 trace name context forever';就可以关闭直接路径读.
1030 0
|
数据安全/隐私保护 Windows Shell
|
SQL Oracle 网络协议
[20171106]配置客户端连接注意.txt
[20171106]配置客户端连接注意.txt --//在配置客户端连接时一般建议使用Net Manager工具,windows下调用执行Net Manager. --//linux下执行 netmgr,这样能一定程度避免copy & paste的 错误.
991 0
|
关系型数据库 Oracle Linux
[20170712]建立dblink的问题.txt
[20170712]建立dblink的问题.txt SYS@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ----------------------...
970 0
|
网络协议 Linux 关系型数据库
[20161221]快速建立dns服务器.txt
[20161221]快速建立dns服务器.txt --建立dns对我来讲如同噩梦,我记得以前当开始学linux时就配置过一次,里面参数我根本不熟悉,而且是看这一本书做的,那本书存在印刷 --错误,导致自己调式遇到许多问题.所以我对dns的配置一直有点心理上害怕。
1089 0
|
索引 关系型数据库 Oracle
[20160526]建立主键问题.txt
[20160526]建立主键问题.txt --生产系统有1个表没有主键,要求建立发现无法建立,有重复.而且这个索引查询是需要. --实际上可以限制以后的记录不再重复,以前我自己也遇到过,做一个记录.
631 0
[20160330]关于连接顺序3.txt
[20160330]关于连接顺序3.txt --关于连接顺序,曾经写过两篇blog,链接如下: http://blog.itpub.net/267265/viewspace-1991306/ http://blog.
788 0
|
测试技术
[20160220]关于连接顺序2.txt
[20160220]关于连接顺序2.txt --前几天被问一个问题,如果使用外连接的情况,连接顺序可以改变吗?我只能说我给测试看看,再回答这个问题: --链接测试已经说明存在外连接的情况下,无法改变连接顺序的。
790 0

热门文章

最新文章