高级UNIX环境编程3 FILE IO】的更多相关文章

POSIX中,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 对应0,1,2 每个打开的文件都有一个与其想关联的 "current file offset" , sleek() 修改 内核用三个数据结构管理打开的文件 :进程表项(fd标志,文件指针),文件表(文件状态标志,当前文件偏移量,v节点指针),v节点(i节点) 每个进程有自己的进程表项和文件表 #include<fcntl.h>  fcntl #include<termios…
标准IO库都围绕流进进行的 <stdio.h><wchar.h> memccpy 一般用汇编写的 ftell/fseek/ftello/fseeko/fgetpos/fsetpos 定位 在UNIX系统中,标准IO库最终都要调用IO例程…
1.文件IO 2.文件与目录 3.进程 4.多线程编程 5.信号 6.进程间通信 学习linux编程,首先要学会使用shell,这里一些基础命令就不介绍了.这里唯一要提的一个shell命令就是man.man是任何一个开发者都应该学会经常使用的工具,使用man比去查看任何一本教材都要来的快速准确.man可以查看一下内容: 1.一般命令(shell命令)2.系统调用(open write等直接陷入内核的函数)3.子函数(C函数库等不直接陷入内核的函数)4.特殊文件(/dev/zero等linux系统…
常规文件 只有索引节号(i-number,是一批i-node的索引),i-node不含文件名及数据字节,包括文件类型,链接数量,uid,gid,访问权限,字节数,最后访问时间,最后修改时间,信息节点最后修改时间,文件内容磁盘块指针 目录:使用名称来标识文件,实际中总是用目录来访问文件,每个目录包含一个两列表,一列是文件名称,一列是索引节号,名称/信息节点对被称为链接(link) 块特殊文件:包含固定长度块的数组,并使用内核缓冲区池加速IO操作 字符特殊文件:不适合使用缓冲区,块大小不定 程序运行…
每个程序都会收到一张环境表 extern char **environ; c程序的存储空间布局: 正文段:共享,只读 初始化数据段:存函数以外的赋值 非初始化数据段(bbs):block started by symbol  在程序开始之前,内核将此段中数据初始化0或NULL,存储函数以外的声明 栈 堆:堆位于非初始化数据段和栈之间 c中,goto语句不能跨越函数的,执行这类跳转的是setjmp / longjmp getrlimit/setrlimit…
linux下,keventd守护进程为内核中运行的执行的函数提供进程上下文 bdflush,kupdated将高速缓存中的数据冲洗到磁盘上…
<pthread.h> pthread_equal pthread_self(void) pthread_create() pthread_close() pthread_join() phread_cancel() pthread_cleanup_push() pthread_cleanup_pop() 同步: 1互斥量 pthread_mutex_init() pthread_mutex_destory() pthread_mutex_lock() pthread_mutex_tryloc…
信号是软件中断,提供一种处理异步事件的方法 <signal.h> sigaction()…
#include<sys/stat.h> stat fstat lstat fchmod 对已打开的文件操作…
perror("error:") ;  strerror 日历时间:time_t (1970.1.1开始的秒数)     struct timeval (秒数和微秒)  struct tm struct  t m * localtime(const time_t *t);  === time_t mktime(struct ™ *tmbuf); struct t m* gmtime( const time_t *t );//to utc时间 char * ctime( const ti…