linux IO

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



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

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

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

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

2,或者等待队列唤醒

 

关于struct 和 class区别:

1):默认继承访问权限:structpublicclassprivate

2)struct作为数据结构的实现体,默认数据访问是publieclass对象实现体,默认数据访问是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(const void * 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号

 

 

 

 


本文出自 “C语言误区” 博客,请务必保留此出处http://10443940.blog.51cto.com/10433940/1663746

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。