linux c语言lockf(),linux IO

以下内容仅表示自己的学习笔记,对其中一些知识的见解,防止遗忘,不喜勿喷。错误之处,欢迎发邮箱指导:738254743@qq.com

阻塞:没有获得资源则进程挂起,直到获取资源为止。挂起进程进入睡眠状态,给调度的等待队列移走,直到等待条件满足。

非阻塞:操作设备部不挂起,或放弃,或反复查询。

非阻塞和阻塞区别:非阻塞:不断查询,消耗CPU;阻塞时进程进入休眠状态,将CPU资源让给其他资源

阻塞唤醒:1,唤醒休眠进程,最大可能在中断里,往往伴随中断

2,或者等待队列唤醒

关于struct和class区别:

1):默认继承访问权限:struct是public、class是private

2):struct作为数据结构的实现体,默认数据访问是publie,class对象实现体,默认数据访问是private

3):只有class能定义模板参数

1,Linux 中的文件主要分为 4 种:普通文件、目录文件、链接文件和设备文件。

2,所有对设备和文件的描述都使用文件描述符进行的。打开文件的时候向内核返回一个文件描述符。

3,文件IO:有缓冲:eg: fopen

标准IO:无缓冲:eg: open

4,定位:可以选择读取数据的大小和位置

lseek(int fd, off_offest, int whence):出错返回:-1

Offset:偏移量(单位字节,可正、可负)

Whence:SEEK_SET:当前位置 为开头

: SEEK_CUR:当前位置为文件指针位置

:SEEK_END: 文件结尾

5,文件锁:1,lockf():对文件施加建议锁

2,fcntl():对文件施加建议锁,也可以施加强制锁(用的最多)---->记录锁

6,串口通信:1,并行通信:传输距离短,速度快

2,串行通信:传输距离长,速度慢

UART操作主要:数据接收,数据发送,产生中断,设置Loopback模式,红外模式,硬软流控模式

标准IO

1,输出一个字符:fpuct()

2,打开文件,失败返回值NULL:fopen():打开文件路径和模式

Fdopen():打开文件描述符合模式

Freopen():打开文件、模式和特定IO流

3,关闭文件:fclose()

4,读IO:fread(void * ptr,size_t size,size_t nmemb,FILE * stream)

Ptr:缓存区,size:读取大小(每次读取大小),nmemb:读取记录数(总数),stream:要读取文件流

写IO:fwrite(constvoid * ptr,size_t size,size_t nmemb,FILE * stream)

5,字符输入输出:

1)读写一个字符---->输入getc(file *stream)

Fgetc(file *stream)Stream: 文件流

输出:putc(int c, file *stream)

Fpuct(int c, file *stream)

C:字符,stream:文件流

2)行输入:gets(char *s)

Fgets(char *s, int size, file *stream)

行输出:puts(const char *s)

Fputs(const char *s, file *stream)

失败返回:NULL

3)格式化输入输出:

输出:int printf(const char *format)

Int fprintf(file *fp, const char *format)

Int sprintf(char *buf, const char *format)

Format:输出格式,fp:文件描述符,buf:缓存区

失败返回:NULL

输入:int scanf(const char *format)

Int fscanf(file *fp, const char *format)

Int sscanf(file *fp, const char *format)

Format:输入格式,fp:文件描述符,buf:缓存区

失败返回:NULL

----------------------------------------------------写于2015年4月10号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值