unix编程
2018-05-12 17:31:04 7 举报
AI智能生成
登录查看完整内容
Unix编程
作者其他创作
大纲/内容
unix编程
https://blog.csdn.net/wenqian1991/article/details/40110703
文件编程
文件系统结构
系统文件编程
标准文件编程库
文件的创建、打开、关闭与删除
文件的无格式读写
字符输入函数族
#include int getc(File *stream);int getchar(void);int fgetc(FILE *stream);函数fgetc功能类似于getc,但执行速度远低于getc,因此getc常被定义在宏中使用。注:字符输入函数族虽然每次读取一个字符,但是其返回值为整型,否则会读取到错误的信息。
设计一个使用字符读写函数解析报文的例子,程序读取文件“/etc/passwd”中的每一个字符,并将“用户名称”域单独提取出来,存入文件“copyname.txt”中。passwd文件格式 -- 用户名称:密码:用户ID:…。
字符输出函数族
行输入函数族
\u00A0行输出函数族
设计一个使用行读写函数解析报文的例子,程序读取文件“/etc/passwd”中的每一个字符,并将“用户名称”和“用户ID”域单独提取出来,存入文件“copynameid.txt”中。注:passwd文件格式 -- 用户名称:密码:用户ID:…。
块读写
文件的格式化读写
文件的格式化输入函数族
文件的格式化输出函数族
函数的变长参数
文件读写位置的定位
设计一个文件定位实例,函数seekwrite将整数值narray写入文件“rec*sizeof(int)”位置处;函数seekread从文件的第“rec*sizeof(int)”位置中读取整数值存入narray。
文件缓冲
缓冲块大小为0,所有I/O立刻执行,字符被逐个地写入文件或从文件读出。为了便于错误的及时提示,stderr采用无缓冲模式。
并发程序设计
进程的创建
方法1
方法2
僵死进程
解决方法
实例
#include #include #include int main(){pid_t pid;if((pid = fork()) == 0){printf(\"child[%d]\\
时钟与信号
时间
下面给出一个打印本地时间的例子[bill@billstone Unix_study]$ cat time1.c#include #include int main(){struct tm when;time_t now;time(&now);when = *localtime(&now);printf(\"now=[%d] [%04d %02d %02d %02d:%02d:%02d]\\
信号
定时器
在UNIX中使用普通定时器需要三个步骤:(0)\u00A0编写响应定时信号函数(1) 调用signal函数设置捕获定时信号(2) 调用函数alarm定时.
精确到毫秒
全局跳转
单线程I/O超时处理
(2) 信号与跳转I/O超时方式
进程通信
管道
#include #include #include #include #include extern int errno;int main(){FILE *fp;char buf[255];assert((mkfifo(\"myfifo\
\u00A0消息队列
a) 根据自己的需要定义消息结构struct msgbuf {long mtype; /* type of message */char ctext[100]; /* message data */};
c) 组装消息printf(\"Please input: \
例子
信号量(一个整数就是一个信号)
共享内存
把共享内存的空间映射进程序空间来
复制数据进去printf(\"Please input NO.(0-9): \");scanf(\"%d\
取消隐射shmdt(pmat);
0 条评论
回复 删除
下一页