在《高级Bash脚本编程指南》上有一个例子,用重定向,通过shell对文件随机读写,但那方法在Unix的sh下不管用,自己写了一个,例子如下:
#!/bin/sh
#randRead.sh
echo 1234567890 > sFile
exec 3<> sFile
#read -n 4 <&3
dd bs=1 count=4 of=/dev/null <&3 2>/dev/null
echo . | dd bs=1 count=1 >&3 2>/dev/null
exec 3>&-
cat sFile
运行结果如下:
root@SMP2> cat -n randRead.sh
1 #!/bin/sh
2 echo 1234567890 > sFile
3 exec 3<> sFile
4 #read -n 4 <&3
5 dd bs=1 count=4 of=/dev/null <&3 2>/dev/null
6 echo . | dd bs=1 count=1 >&3 2>/dev/null
7 exec 3>&-
8 cat sFile
root@SMP2>
root@SMP2> ./randRead.sh
1234.67890
root@SMP2>
附ABS上的例子:
87 echo 1234567890 > File # 写字符串到"File".
88 exec 3<> File # 打开"File"并且给它分配fd 3.
89 read -n 4 <&3 # 只读4个字符.
90 echo -n . >&3 # 写一个小数点.
91 exec 3>&- # 关闭fd 3.
92 cat File # ==> 1234.67890
93 # 随机存储.
分享到:
相关推荐
首先,`prov.csv` 是一个包含CSV(逗号分隔值)格式的数据文件,这种文件类型常用于存储表格数据,易于读写和处理。在本案例中,它可能包含了省(province)的相关数据,如省份名称等。 接着,`insert_sct_Province...
### LINUX与UNIX SHELL编程指南知识点详解 ...通过对文件的权限进行合理配置,可以有效地保护敏感数据免受未授权访问,同时确保系统的稳定性和安全性。掌握文件权限的基础知识对于日常管理和开发工作都非常重要。
第1章绪论.1 1.1操作系统概述1 1.1.1建立操作系统的目标1 1.1.2操作系统是用户与计算机的接口1 1.1.3操作系统是资源管理器2 1.2UNIX系统的主要特性3 1.3UNIX系统的发展史4 1.4开源软件与UNIX的推广发展6 1.4.1开源...
可以通过定位文件指针来进行随机访问。 - **`Unix.lseek fd pos whence`**:设置文件描述符`fd`的当前位置。 ##### 2.13 针对特定文件类型的操作 针对不同类型的文件(如常规文件、设备文件等),Unix提供了不同...
文件操作包括打开、关闭、读写、随机访问以及错误处理等。 3. **信号处理**:Unix通过信号机制实现异步事件通知,比如进程异常、用户中断等。程序可以注册信号处理器来响应特定信号,实现复杂的行为控制。 4. **...
2. **文件I/O**:讲解文件描述符、打开与关闭文件、读写操作、随机访问以及文件权限和属性的管理。 3. **系统调用**:介绍系统调用的机制,如fork、exec、wait等,以及如何通过系统调用来实现进程间的交互。 4. **...
书中详细讲解了如打开、读写、关闭文件,进程控制(创建、终止、等待),信号处理,内存管理等基本系统调用的使用。 2. **文件I/O**:在UNIX中,一切皆文件,包括设备。文件I/O是编程中的基础操作,书中涵盖了标准I...
要求最后实现对文件的加密转储,或通过改道的办法进行转储。对于已加密的文件可以进行解密显示或解密后转储。形成加密或解密文件后要删除原来的文件。 建议加密过程使用按字符进行异或的方式处理,也可以是仿射加密...
可以使用`fcntl()`函数的`F_SETLK`、`F_SETLKW`、`F_GETLK`等选项来对文件加锁,`F_SETLK`是非阻塞的,`F_SETLKW`是阻塞的,而`F_GETLK`用于查询文件上的锁状态。文件锁可以防止多个进程同时修改同一个文件,从而...
1. **文件I/O**:详细介绍了UNIX系统中的文件操作,包括打开、关闭、读写、随机访问、缓冲I/O和非阻塞I/O等。 2. **进程管理**:讲解了进程创建、进程控制、进程间通信(管道、信号、消息队列、共享内存、套接字等...
#### 二、Unix环境下的高级编程技术 ##### 2.1 进程管理 - **进程的概念**:在Unix系统中,每个正在运行的程序都对应一个进程,它是程序的一次动态执行过程。 - **进程控制**: - `fork()`函数:用于创建新进程。 ...
Java 软件工程师所需的详细知识和技能,涵盖 Java 语言基础、面向对象编程、集合编程、多线程编程、GUI 编程、文件读写、对象序列化、异常处理、网络编程、国际化、J2SE 5.0 新特性、设计模式、反射机制、Unix 开发...
mmap模块可以映射文件到内存,方便对文件进行操作。UserDict、UserList和UserString模块提供了对象,它们分别是字典、列表和字符串类型的扩展。 在数据表示方面,traceback模块提供了获取、打印和格式化栈跟踪信息...
由于标签为"Shell",我们可以推测这个项目与Unix或Linux环境下的Shell脚本编程有关。在这个压缩包"alexxy-master"中,很可能包含了alexxy编写的各种Shell脚本及相关文件,用于自动化任务执行、系统管理或其他相关...
1. `vdbench.bash`:这是一个Bash shell脚本,可能是用于在Linux或Unix系统上启动Vdbench的命令行接口。用户可以通过修改此脚本来定制他们的测试场景。 2. `vdbench.bat`:这是Windows批处理文件,用于在Windows...
5.7 读写压缩文件:使用内置库处理压缩文件的读写。 5.8 固定大小记录的文件迭代:通过记录的固定长度实现文件的迭代。 5.9 读取二进制数据到可变缓冲区中:将二进制数据读取到可扩展的缓冲区。 5.10 内存映射的二...