unix高级编程--1(文件与目录)

1..文件和目录

  • 推荐得文件名 .-_数字 字母
  • 绝对路径:以/开头得文件 相对路径:非/开头
  • 文件描述符

标准输入: 0

标准输出:1

标准错误输出:2

  • 错误码 #include<errno.h>

errno

打印错误信息

void perror(char* msg)

输出:msg: 错误信息

2.限制

  • 获取系统实际支持得限制

syconf pathconf fpathconf

3.文件I/O

  • 不带缓冲得I/O,原子操作

open creat close lseek read write

  • 原子操作:pread  pwrite  不更新文件偏移量
  • dup fcntl 复制打开得文件描述符
  • 同步函数 fsync sync fdatasync
  • 获取、设置文件状态 fcntl 只读只写等
  • fopen("/dev/fd/0",O_RDWR)相当于复制标准输入

4.文件类型

  • stat获取与文件有关得信息结构
  • 设置用户ID得程序获得额外权限
  • access判断文件存在、读写权限
  • umask 设置当前进程文件创建模式屏蔽字,屏蔽掉相关权限

umask(S_IRGRP|S_IWGRP) 创建文件不具有组写和读权限

  • chmod fchmod 更改现有文件权限
  • 黏着位  具有特殊权限得才能删除文件
  • 文件得空洞:因为lseek超过其实际长度引起,不占用实际内存
  • 文件截断:truncate ftruncae
  • 硬链接:link unlink  

open之后,立即unlink,保证进程关闭后,文件被删除

  • remove rename renameat
  • (符号)软连接:symlink readlink
  • 设置文件时间:futimens
  • 文件目录 mkdir rmdir
  • 读取目录:opendir readdir rewinddir closedir telldir seekdir
  • 当前工作目录:chdir fchdie getcwd

5.标准I/O库

  • fwide 设置流定向  多字节或ascII
  • 全缓冲、行缓冲、不带缓冲(错误输出) setbuf
  • fflush强制冲洗流
  • fopen fseek fclose frrror feof getc rewind gets   fread fwrite printf sscanf
  • fileno获取标准I/O流对应得文件描述符
  • 临时文件 tmpnam tmpfile
  • 内存流 fmemopen open_memstream

6.系统数据文件和信息

  • 口令(/etc/passwd):getpwuid getpwnam ....
  • 密码(/etc/shadow):getspname getspentnam
  • 组文件(/etc/group):getgrgid getsgrnam
  • /etc/networks /etc/hosts...
  • 时间 time 秒数 clock_gettime 纳秒
  • strftime 格式化时间 strftime(buf2, 64, "time and date: %r, %a %b %d, %Y", tmp) == 0
  • strptime 解析时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值