【转】APUE习题4.6---测试lseek作用】的更多相关文章

原文网址:http://m.blog.csdn.net/blog/u014488381/42556509 原题:如果使用追加标志打开一个文件以便读.写,能否仍用 lseek 在任一为止开始读?能否用 lseek 更新文件中任一部分的数据? 验证程序如下: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <string.h>…
package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import javax.mail.Session; import org.junit.Test; import cn.itcast.mail.Mail; import cn.itcast.mail.MailUtils; /** * 测试MailUtils,作用是发邮件 * 底层依赖的是javamail:mail.ja…
习题3.2的要求是不使用fcntl()而编写一个同dup2()功能相同的函数.直觉上是不断使用dup()直到返回指定的文件描述符. #include <stdio.h>#include <stdlib.h>#define OPEN_MAX 63 int my_dup2(int filedes,int filedes2); intmain(int argc, char* argv[]){  int fd,fd2;  char buf[] = "It work!\n"…
int mydup2(int oldfd, int newfd) {     int tfd = 0;     if (newfd < 0)     {         err_sys("newfd < 0");     }     if (newfd == oldfd)     {         return oldfd;     }       while(1)     {         tfd = dup(oldfd);           if (tfd ==…
[引言] 我们经常需要多函数进行耗时测试,测试方法有许多,这里介绍装饰者的方法,提高耗时测试代码的可复用性,在其他方面的应用也是如此. [设计原则] 类应该对扩展开放,对修改关闭. [代码] (1)定义装饰者具体方法 #encoding: UTF-8 ''' Created on 2016��12��7�� @filename: test.py @author: YYH ''' import time from functools import wraps class TimeRecorder:…
看书的时候发现这个习题没有答案,于是就想把自己做的结果贴上来,和大家分享分享! 首先把题目贴上来吧: /*********** 8.10节中提及POSIX.1要求在调用exec时关闭打开的目录流.按下列方法对此进行验证,对根目录调用opendir,查看在你的系统上实现的DIR结构,然后打印执行时关闭标志.接着open同一目录读取并打印执行时关闭标志 ***********/ 首先说,关于执行时关闭标志的作用,JesseEisen的这篇博客已经讲解的非常好了,(传送门在这里)我就不在这里献丑了,我…
对于lseek函数早在大一的C语言课上就有接触,但是几乎没有使用过,只记得是和文件偏移操作相关的 看了APUE上的示例,又使用od工具查看了内容,果然很神奇,很新鲜 figure3.2.c [c] #include "apue.h" #include <fcntl.h> char buf1[] = "abcdefghij"; char buf2[] = "ABCDEFGHIJ"; int main(void) { int fd; if…
5.4 下面的代码在一些机器上运行正确,而在另外一些机器运行时出错,解释问题所在? #include <stdio.h> int main( void ) { char c; while( ( c = getchar() ) != EOF ) putchar( c ); } 答:这是一个比较常见的错误.getc以及getchar的返回值是整型,而不是字符型.由于EOF经常定义为-1,那么如果系统使用的是有符号的字符类型,程序还可以正常工作.但如果使用的是无符号字符类型,那么返回的EOF被保存到…
函数名: lseek 功 能: 移动文件读/写指针 头文件:#include <sys/types.h> #include <unistd.h> 用 法: off_t lseek(int handle, off_t offset, int fromwhere); 所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo.cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数.读写操作通常开始于 cfo,并且使 cfo 增大,增…
所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo.cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数.读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数.文件被打开时,cfo 会被初始化为 0,除非使用了O_APPEND . 使用 lseek 函数可以改变文件的 cfo . #include <unistd.h> #include <sys/types.h> off_t lseek(int fil…