面向函数的unix环境编程练习
函数练习
1.对mmap映射地址操作
mmap(), fstat()
mmap(): 将文件和设备空间映射到内存中,内存操作比磁盘更快。映射成功返回内存地址,是被返回-1.之后可以直接对映射的地址进行操作。
fstat()获取文件的状态。
#include stdio.h
#include unistd.h
#include sys/mman.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include stdlib.h
#include errno.h
int main(){
int fd=open(doc1,O_RDONLY|O_CREAT,0755);
if(fd == -1){
perror(open );
exit(1);
}
struct stat info;
fstat(fd,info);
/* start set NULL, means system set it. */
/* PROT_READ means memory can be read. */
/* MAP_PRIVATE means create a copy file, not influce origin file. */
void *start=mmap(NULL,info.st_size,PROT_READ,MAP_PRIVATE,fd,0);
if(start == MAP_FAILED) {
perror(mmap );
exit(1);
}
printf(%s,(char *)start);
munmap(start,info.st_size);
close(fd);
return 0;
}
本程序将打印文件的内容。如果文件的内容为空,那么将会出现,invalid argument的错误。
2.从标准输入到标准输出
read(), write()
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include unistd.h
int main(){
int n;
char buf[1000];
while((n=read(STDIN_FILENO,buf,1000))0){
//printf(output: );
if(write(STDOUT_FILENO,buf,n)!=n){
printf(write error\n);
}
}
if(n0) printf(read error\n);
return 0;
}
/*
$ ./stdin_out
I sf
I sf
sd
sd
sdfsdf
sdfsdf
//output: output: output:
*/
read()函数是你输入什么,它读取什么的严格类函数。(除了ctrl+D,ctrl+C等特殊情况)
3.查看标准输入的读写属性
fcntl()
使用fcnt()查看文件的属性。
#include unistd.h
#include stdio.h
#include fcntl.h
int main(){
int flag=fcntl(STDIN_FILENO,F_GETFL,0);
if(flag0) {
perror(error: );
return -1;
}
int result=flag O_ACCMODE;
if(result == O_RDONLY){
printf(stdin read only\n);
}
else if(result == O_WRONLY){
puts(stdin write only);
}
else if(result == O_RDWR){
puts(stdin read and write);
}
else puts(stdin unknown mode);
if(flag O_APPEND) puts(stdin append);
if(flag O_NONB
您可能关注的文档
- 非动管柱测试类作业总结模板(XX作业公司).doc
- 非常全!FANUC常用CNC参数大汇总.docx
- 非常,非常,非常重要。。。各物业类型建造成本.pptx
- 非常老的话题 SQLSERVER连接池.doc
- 非凡口才精彩人生.ppt
- 非常完整《凡卡》PPT课件.ppt
- 静脉输液(侯玉华).ppt
- 非煤矿山安全生产责任制(全套).doc
- 非方程的数值解法.ppt
- 非发酵菌群的分类鉴定.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 贫困户专项贷款业务申请表.docx VIP
- 2025年AWS认证AWSDataSync与SnowballEdge结合的大规模数据迁移方案专题试卷及解析.pdf VIP
- 2025年演出经纪人通过组织小型沙龙、读剧会等人脉活动主动建圈专题试卷及解析.pdf VIP
- 2025年演出经纪人演出市场主体准入中的专业人员配备要求专题试卷及解析.pdf VIP
- 2025年金融风险管理师外汇储备管理与币种结构决策专题试卷及解析.pdf VIP
- 2025电信转正考试参考题库(含答案解析).docx VIP
- 《低空无人驾驶航空器起降场地安全通用要求》.pdf VIP
- 基于代谢组学的肥胖症个性化干预数字方案.pdf VIP
- 低空飞行气象安全通用要求.docx VIP
- 内镜中心应急预案.pdf VIP
原创力文档

文档评论(0)