网站大量收购闲置独家精品文档,联系QQ:2885784924

POSIXIO的应用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
POSIXIO的应用

实验五 POSIX IO的应用 班级 B08512 姓名 张一梦 学号 20084051211 日期 2011/3/25 成绩评定 1.实验目的 (1)掌握Linux系统中文件的创建、打开、关闭、读、写等函数的使用 (2)掌握open、read、write、fcntl等系统调用的使用 (3)掌握readdir、mkdir、rmdir、getcwd、get_current_dir_name等对目录文件的操作函数 2.实验环境 已安装Linux操作系统的微机一台 3.实验内容 (1)阅读程序,了解系统调用open、creat、read、write等系统的使用 ①#include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include errno.h int main() { int fd; if ((fd = open(example_62.c, O_CREAT|O_EXCL, S_IRUSR| S_IWUSR)) == -1) { //if ((fd = creat(example_62.c, S_IRWXU)) == -1) { perror(open); //printf(open:%s with errno:%d\n,strerror(errno),errno); exit(1); } else { printf(create file success\n); } close(fd); return 0; } 程序运行结果: 使用open 运行结果如图1所示,使用creat 运行结果如图1所示 图1 open 运行结果 图2 creat 运行结果 回答问题:open与creat的异同点。 ② #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include errno.h /*自定义的错误处理函数*/ void my_err(const char * err_string, int line) { fprintf(stderr, line:%d , line); perror(err_string); exit(1); } /*自定义的读数据函数*/ int my_read(int fd) { int len; int ret; int i; char read_buf[64]; /*获取文件长度并保持文件读写指针在文件开始处*/ if (lseek(fd, 0, SEEK_END) == -1) { my_err(lseek, __LINE__); } if ((len = lseek(fd, 0, SEEK_CUR)) == -1) { my_err(lseek, __LINE__); } if ((lseek(fd, 0, SEEK_SET)) == -1) { my_err(lseek, __LINE__); } printf(len:%d\n, len); /*读数据*/ if ((ret = read(fd, read_buf, len)) 0) { my_err(read, __LINE__); } /*打印数据*/ for (i=0; ilen; i++) { printf(%c, read_buf[i]); } printf(\n); return ret; } int main() { int fd; char write_buf[32] = Hello World!; /*在当前目录下创建文件example_63.c*/ //if ((fd = creat(example_63.c, S_IRWXU)) == -1) { if ((fd = open(example_63.c, O_RDWR|O_CREAT|O_TRUNC, S_IRWXU)) == -1) { my_err(open, __LINE__); } else { printf(create file success\n); } /*写数据*/ if (write(fd, write_buf, strlen(write_buf)) != strlen(write_buf)) { my_err(write, __LINE__); } my_read(fd); /*演示文件的间隔*/ pri

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档