例:将一个文件中的内容写到另外一个文件中。
执行结果:
说明已经成功将一个文件中的内容写到另外一个文件中。
off_t实际上是整型,fd是文件描述符,offset是读写位置的偏移量,whence是位置,它分为三种:SEEK_SET、SEEK_CUR、SEEK_END。
(1)获取文件大小
(2)文件的拓展
例:从文件结尾向后拓展2000个字节。
执行结果:
最后发现文件大小是2015个字节,因为最后的写操作向里面写入了一个字节。
将拓展之后的文件称为空洞文件。
(1)stat命令:查看文件的详细信息
(2)stat函数:
新创建的线程从start_rtn函数的地址开始运行,该函数只有一个无指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg的参数传入。新创建的线程从start_rtn函数的地址开始运行,该函数只有一个万能指针参数arg,如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg的参数传入。execprocedure(
其中st_mode是16位的变量:
相应网络掩码为: ff:ff:ff:ff:ff:ff:ff:ff, 所以ipv6 的网络匹配是真正的'host'方式的匹配(nt | rt | rc:地址的8个部分都会用到,是否不属于网络的字节填写0, 需接下来补充), 但同时需要一个网络掩码长度参数来具体指定前面多少字节为网络掩码(nt: 可通过下面的net net/len 来指定)。注:033效果与022一样,假设使用033掩码进行设置linux命令大全,则真实权限应为633即rw- r-x r-x ,但前提规定文件不生成x位,所以文件的权限最终将以rw-r--r--出现。'+'代表增加相应权限,'-'代表减少相应权限,'='代表仅设置对应的权限'rwx'是权限的字符组合形式,也可以拆分使用 'nnn'为需要设置的具体权限值,如'770'、'644'等-r:将一个目录中的所有子目录及文件的权限都设置为相同的值。
(1)例:stat函数应用:将文件的大小输出出来。
执行结果:
注:命令行参数中argv[0]是当前可执行文件的名字,所以我们要将argv[1]传入stat函数。
如果传入的参数是该文件的一个软链接,那么stat函数仍然会去追踪该文件,所以输出的是该文件的大小,而不是软链接文件的大小:
(2)lstat函数
如果把程序中的stat函数换成lstat函数,那么上面的两个实验会分别输出以下结果:
可以看到如果传入的参数是该文件的一个软链接,那么lstat函数不会去追踪该文件,所以输出的是软链接文件的大小。
此外,这几个命令也分为追踪和不追踪:
truncate函数:文件的拓展
(1)unlink函数作用:删除一个文件的目录项并减少它的链接数,若成功返回0,否则返回-1。如果想通过调用这个函数来成功删除文件,就必须拥有这个文件的所属目录的写和执行权限。