每个运行中的程序被称为进程(process),它有一些与之关联的文件描述符(一些小值整数).可以通过文件描述符访问打开的文件或设备. 一个程序运行时,一般会有三个文件描述符与之对应 0:标准输入 1:标准输出 2:标准错误 系统的底层文件调用函数,每次执行下列函数,都将进行一次系统调用: open close write read 标准IO库 stdio.h 在标准IO库中,与底层文件描述符相对应的是文件流(stream),它被实现为指向结构FILE的指针.标准IO库可以通过缓冲区减少系统调用,…
    在不使用标准I/O的情况下,使用write,read,open实现对文件的复制操作,这些调用都是直接使用底层系统调用,完成从用户代码到内核代码的切换,消耗大量的系统资源,今天对此进行研究主要是出于兴趣爱好,并且想要了解一下在没有标准I/O的情况下,要怎想实现文件的底层访问及操作.下面给出这次测试使用的源代码以免日后忘记:#include<unistd.h>#include<stdlib.h>#include<fcntl.h>#include<sys/sta…
格式:scp [参数] [原路径] [目标路径] download 使用方法:scp -r root@127.0.0.1:/opt/soft/test /opt/soft/ scp -r 用户名@IP地址:服务器目录或者文件(绝对路径)    本地目录 说明:从127.0.0.1机器上的/opt/soft/中下载test     目录到本地的/opt/soft/目录来.不是文件夹可去掉  -r. up scp /opt/soft/test.tar.gz root@ip地址:/opt/soft/t…
只总结了部分常用的内容,详细内容参考<UNIX环境高级编程>及相关书籍. Linux中文件编程可以使用两种方法 Linux系统调用(依赖于系统) C语言库函数(不依赖于系统) Linux系统调用实现文件编程(man 2) 函数详见 man 2 funcname 文件的创建 int creat(const char *filename, mode_t mode) filename: 要创建的文件名 mode:创建模式 (S_IRUSR/S_IWUSR/S_IXUSR/S_IRWXU) //mod…
前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访问位: 启动进程的用户.所在的组.有效用户.有效用户组. 下面先简单说明一下这些基本概念,最后再说明它们是如何相互作用并影响进程访问文件的. 用户与组 用户 ID 唯一标识一个登录用户,记录在口令文件 (/etc/passwd) 中.ID 为 0 的用户为超级用户或根用户 (root),具有绕过文件…
Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 可用 ls -l 查看文件 像上图的-rw-r--rw- 其中的第一个字符表示的是文件类型(- 表示普通文件,d 表示目录文件,c : 为字符串设备,若路由器等设备 b : 块设备,硬盘.光驱等)后面的九个字符就是表示的文件权限了,每三个字符为一组 第一组(rw-):表示文件所有者的权限,上图中的文件的所有者为root用户,具备可读 可写 第二组(r--…
linux测试noatime对文件访问时间的影响 文件(如abc)有3个时间: # stat abc Access: 2015-04-16 19:30:13.665970572 +0800 Modify: 2015-04-16 19:28:53.770002677 +0800 Change: 2015-04-16 19:28:53.784001602 +0800 Access是文件最后访问时间,cat命令会改变这个时间.但是由于缓存的原因,短期内只有第一次cat 'abc'时 会改变这个时间.如…
linux文件访问权限(像rw-r--rw-是什么意思)   Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 可用 ls -l 查看文件 像上图的-rw-r--rw- 其中的第一个字符表示的是文件类型(- 表示普通文件,d 表示目录文件,c : 为字符串设备,若路由器等设备 b : 块设备,硬盘.光驱等)后面的九个字符就是表示的文件权限了,每三个字符为一组 第一组(rw-):表示文件所有者的权限,上图…
在linux和Mac中访问某个文件夹中所有的文件——输出所有的文件名 #include <stdio.h> #include <dirent.h> int main() { struct dirent *dirp; DIR* dir = opendir("/Users/tanchao/Documents/wsy/切分错误"); while ((dirp = readdir(dir)) != nullptr) { if (dirp->d_type == DT…
Linux文件访问流程 inode是文件的唯一标识,文件名和inode的对应关系存放在上一级目录的block中:inode里有指向文件block的指针和文件的属性,从而通过block获得文件数据. 磁盘的容量由inode和block共同决定 磁盘空间是否满了,是由两项参数决定的: 第一个是inode是否满了,第二是block是否满了,任何一个满了都不能存数据. 有关inode的总结 磁盘格式化创建文件系统时会生成一定数量的inode和block: inode称为索引节点,作用是存放文件的属性信息…