UNIX系统编程:文件操作与时间处理
1. 特殊文件操作
在UNIX系统编程中,有一些特殊的文件操作和函数能帮助我们更高效地处理文件和数据。
1.1 文件内容大写转换程序
以下是一个简单的C程序,用于将文件内容转换为大写并输出:
while ((c = getc(fp)) != EOF) {
if (islower(c))
c = toupper(c);
putc(c, stdout);
}
fclose(fp);
exit(0);
这个程序会打开命令行指定的文件,读取文件内容,并将其以大写形式输出。不过,由于它只能从文件读取,所以不能作为管道的一部分将其他命令的输出转换为大写。
为了解决这个问题,可以使用 /dev/fd 文件系统。它允许将程序的标准输入指定为文件名。例如,要在管道中使用上述程序,可以这样做:
% somecommand | toupper /dev/fd/0
/dev/fd 文件系统最初在Research UNIX中开发,随后出现在BSD UNIX的公共领域实现中,并最终成为SVR3和SVR4的一部分,现在也逐渐出现在其他厂商的发行版中。不过,HP - UX 10.x不支持该文件系统。
1.2 杂项函数
除了上述功能,还有一些特殊用途的函数也偶尔会用到。
- 控制文件创建模式
超级会员免费看
订阅专栏 解锁全文
7573

被折叠的 条评论
为什么被折叠?



