文章目录
前言
linux系统的一大特点就是“一切皆文件”,大家知道的文件创建方法有那些呢?今天我就进行一个小小的总结,归纳我在学习过程中遇到的文件创建方法,主要从命令创建和库函数创建着手。
使用命令创建文件
如下为我学习中使用到的四种文件创建命令,其中前两者比较常用,后两者原理为输出重定向。
1. touch
命令:
命令格式: touch filename
touch
命令在Linux中是一个多功能的命令,主要用于处理文件的时间戳。在touch filename
时,如果指定的文件不存在,touch命令会创建一个空的新文件。
2. vim
/vi
编辑器:
命令格式:vim filename
命令格式:vi filename
- 按下回车键后,
Vim
将打开一个空白窗口,并进入插入模式。 - 在插入模式下,你可以开始编写文件的内容。
- 当你完成文件编辑后,按下Esc键退出插入模式。
- 输入
:wq
保存文件并退出Vim编辑器:
值得注意的是这里的filename
和touch
命令一样,是当前目录不存在即创建,否则是打开编辑。
3. cat
重定向:
命令格式:cat > filename
命令格式:cat >> filename //这个表示在文件末尾追加
-
按下回车键后,cat命令将等待你输入要写入文件的内容。
-
开始输入你想要写入文件的内容,然后按下
Ctrl+D
组合键结束输入。 -
cat
命令将把输入的内容写入到文件中,并退出命令行界面。 -
现在,你已经成功使用cat命令重定向创建了一个新文件。
4.echo
重定向:
命令格式:echo "内容" > filename
命令格式:echo "内容" >> filename //追加
filename
是你想要创建的文件的名称,内容
是你想要写入文件的内容。- 按下回车键后,
echo
命令将把指定的内容写入到文件中,并退出命令行界面。
echo
和cat
的使用方法类似,都可选择是否为追加的方式。
在程序中使用c函数创建文件
open
函数
int open(const char *pathname, int flags, mode_t mode);
参数:
pathname :文件路径名
flags: 文件打开方式 #include<fcntl.h>
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
O_APPEND 打开文件为追加,不清空原内容
O_CREAT. 创建文件
O_EXCL 检查文件是否存在
O_TRUNC
O_NONBLOCK
mode: 文件权限,在使用 O_CREAT时指定
返回值:
成功:整数,打开文件得到的对应文件描述符
失败:-1,
使用open
函数创建文件是我们在编程过程中常用的方法,只需要指定flags
有O_CREAT
即可达到,文件不存在即创建的效果,这样就等同于下面要讲的creat
函数。
creat函数
int creat(const char *pathname, mode_t mode);
参数:
pathname :文件路径名
mode :指定文件权限
举例open
和creat
函数
int fd1 = open("open.txt",O_RDWR|O_CREAT,0644);
if(fd1 < 0)
{
perror("open erro");
}
int fd2 = creat("creat.txt",0644);
if(fd2 < 0)
{
perror("creat erro");
}