apue 里介绍了文洞(英文是hole,中文不知道怎么说,我理解为“文件的黑洞”,感觉它挺神秘的,像黑洞一样……),所以做了一个程序来产生一个有黑洞的文件,一个没有黑洞的文件。用法是
a.out filename1 filename2,filename1
代表有黑洞的文件名,filename2 代表没黑洞的文件名。注意设计程序的时候这个“黑洞”一定要给得足够大,否则看不见……
所以我的 DELTA 设置为 1000 了,一开始设置为 100,结果 ls -asl 的时候两个文件竟然是一模一样的……
#include <stdio.h>
//#include <unistd.h>
#include "apue.h"
#include "myerr.c"
//#include <pwd.h>
#include <fcntl.h>
#define BUFSIZE 11
#define DELTA 1000
int
main (int argc, char *argv[])
{
int i, fd;
char buf[BUFSIZE] = {"abcdefghij"} ;
if (argc != 3)
err_quit ("usage: a.out filename1 filename2\n") ;
// write a holed file
if ((fd = open (argv[1], O_CREAT | O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) == -1)
err_sys ("holed file open error") ;
// printf ("%d\n", fd) ;
if (write (fd, buf, 10) != 10)
err_sys ("holed file 1 write error") ;
if (lseek (fd, 10 * DELTA, SEEK_SET) == -1)
err_sys ("holed file lseek error") ;
if (write (fd, buf, 10) != 10)
err_sys ("holed file 2 write error") ;
close (fd) ;
// write a no hole file
if ((fd = open (argv[2], O_CREAT | O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) == -1)
err_sys ("noholed file open error") ;
if (write (fd, buf, 10) != 10)
err_sys ("noholed file 1 write error") ;
for (i = 0 ; i < DELTA ; ++i) {
if (write (fd, buf, 10) != 10)
err_sys ("noholed file 2 write error") ;
}
close (fd) ;
exit (0) ;
}
分享到:
相关推荐
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
嵌入式系统软件基础描述及各类嵌入式软件分析方法。嵌入式系统及应用-Chapter3-嵌入式软件系统基础
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
Chapter3-《Ext JS高级程序设计》源代码.rar Chapter4-《Ext JS高级程序设计》源代码.rar Chapter5《Ext JS高级程序设计》源代码.rar Chapter6-《Ext JS高级程序设计》源代码.rar Chapter7-《Ext JS高级程序设计》源...
### JAVA课件_chapter6-File-Stream知识点详解 #### 一、文件与流的基本概念 在Java中,“流”(stream)是一个重要的概念,它指的是从数据源读取或写入目标对象的有序数据。Java程序通过“流”来完成输入/输出操作...
Chapter3--大数据技术原理与应用-第3讲-分布式文件系统HDFS.pdf Chapter4--大数据技术原理与应用-第4讲-分布式数据库HBase.pdf Chapter5--大数据技术原理与应用-第5讲-NoSQL数据库.pdf Chapter6--大数据技术原理与...
Chapter 3 - Dedicated Installation Chapter 4 - Multiboot Installation Chapter 5 - Post-Install Setup Chapter 6 - Startup and Booting Chapter 7 - Managing Users Chapter 8 - Networking ...
3. **文件读写操作** - `FileInputStream`和`FileOutputStream`用于读写二进制数据,如图片、音频等。 - `FileReader`和`FileWriter`处理文本数据,它们默认使用平台的默认字符编码。 - `BufferedReader`和`...
Chapter 3 - Attacking the TNS Listener and Dispatchers Chapter 4 - Attacking the Authentication Process Chapter 5 - Oracle and PL/SQL Chapter 6 - Triggers Chapter 7 - Indirect Privilege ...
操作系统概念英文课件:Chapter 10-file-system interface.pptx
操作系统概念英文课件:Chapter 11-file-system implementation.pptx
Buckland_Chapter2-State Machines Buckland_Chapter3-Steering Behaviors Buckland_Chapter4-SimpleSoccer Buckland_Chapter5-Pathfinder Buckland_Chapter6_Scripting_Source Buckland_Chapter7 to 10_Raven
Chapter3-林子雨-大数据技术原理与应用-分布式文件系统HDFS(2016年1月26日版本).ppt
Chapter3-1.cpp
angularjs-chapter3-示例.rar