- 1、本文档共497页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设备使用 设备号 设备文件 设备驱动 使用设备就是对文件进行操作 如: 设备使用 设备使用 设备使用 特别设备 /dev/null /dev/zero /dev/full /dev/random /dev/loop0 设备使用 /dev/loop可以通过一个普通文件来模拟一个块设备 例如: Count为块数,512字节1块 设备使用 虚拟光驱?? 设备使用 ioctl cdrom-eject.c /proc文件系统 透视Linux内核的窗口 虚拟(内存)文件系统 /proc文件系统 /proc文件系统 程序 /proc文件系统 进程信息 在/proc文件系统中对每个正在运行的进程有一个对应目录,以进程pid命名。 /proc文件系统 进程信息 cmdline cwd environ exe fd maps root stat statm status cpu /proc文件系统 进程信息fd 在另一终端 /proc文件系统 进程信息statm The total process size The size of the process resident in physical memory The memory shared with other processes The text size of the process The size of shared libraries mapped into this process The memory used by this process for its stack The number of dirty pages /proc文件系统 硬件信息 /proc/cpuinfo /proc文件系统 硬件信息 /proc/devices /proc/pci /proc/tty/driver/serial 。。。 /proc文件系统 内核信息 /proc文件系统 内核信息 系统调用 Linux有超过200个系统调用 #include unistd.h Linux进程通信(fifos) 低级I./O 流式C库函数 Linux进程通信(msg queue) 内核中消息队列结构 消息队列(message Queue) struct msg { struct msg *msg_next; long msg_type; char *msg_spot; short msg_ts; } 消息队列(message Queue) 对消息队列的操作 int msgget(key_t key,int msgflag) int msgsnd(int msqid,struct msgbuf *msgp,int msgsz,int msgflg) int msgrcv(int msqid,struct msgbuf *msgp,int msgsz,long type,int msgflg) int msgctl(int msgid,int cmd,struct msqid_ds *buf ) 消息队列(message Queue) 发送函数msgflg指出缓冲区用完时候的操作 接受函数指出无消息时候的处理.一般为0 msgtype=0,接收消息队列的第一个消息 大于0接收队列中消息类型等于这个值的第一个消息 小于0接收消息队列中小于或者等于msgtype绝对值的所有消息中的最小一个消息 消息队列(message Queue) #define MSG_FILE server.c #define BUFFER 255 #define PERM S_IRUSR|S_IWUSR struct msgtype { long mtype; char buffer[BUFFER+1]; }; ?int main() { struct msgtype msg; key_t key; int msgid; ?if((key=ftok(MSG_FILE,a))==-1) { fprintf(stderr,Creat Key Error:%sa ,strerror(errno)); exit(1); } ?if((msgid=msgget(key,PERM|IPC_CREAT|IPC_EXCL))==-1) { fprintf(stderr,Creat Message Error:%sa ,strerror(errno)); exit(1); } While(1) { msgrcv(msgid,msg,sizeof(struct msgtype),1,0); fprintf(stderr,Server R
文档评论(0)