先上代码,再说废话
#include "stdio.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
// int open(const char *pathname, int flags);
// int open(const char *pathname, int flags, mode_t mode);
int main()
{
int flag;
flag=open("/home/lhy/mm",O_RDWR | O_CREAT, 0755);
if(flag== -1)
{
printf("no sucess\n");
}
else
printf("find is sucess\n");
close(flag);
return 0;
}
在介绍之前可以先了解一下Linux的常用命名与vi编译器的简单使用
一、Linux常用命令:
>> cd+
文件夹名字
:
访问某个文件夹
>> ls
:显示当前所在目录的文件
>> touch+
文件名:创建文件
>> rm+
文件名:删除文件
>> mkdir+
目录名:创建目录
>> rm -rf +
目录名:删除目录
>> TAB
键:补全
>> sudo +
命令:用管理员权限执行命令
>> pwd:
显示当前目录的绝对路径
二、vi编译器的简单使用与安装:
vi
和
vim
的区别:
vim
是
vi
的升级版,基础功能两者一致,不过在嵌入式开发板中,
只有
vi
没有
vim
,但是在
Ubuntu
上我们可以使用
vim
编辑器,它的功能更加丰富。
这里只讲解
vi
编辑器基础用法,如果使用
vim
编辑器需要手动安装
vim
编辑器 。
sudo apt‐get install vim
vi +
文件名 用
vi
打开
/
创建某个文本文件。
三、vi编译器的两种模式:
1.
命令行模式:按
ESC
进入
,
在这个状态下,可以输入命令常用命令
>> : +
行号:跳转到某一行
>> G
:跳转到文本末尾
>> yy:
复制某一行,复制的位置由光标所在位置决定
>> yx
:复制若干行,
x
代表行数,输入
2
,就是复制当前行和它下面的两行(总共三行),
复制的位置由光标所在位置决定。
>> p
:把刚刚复制的内容进行粘贴,粘贴的位置由光标所在位置决定
>> :+wq
保存文本并退出
>> :+q
正常退出文本
>> :+q!
强制退出文本
>> :set nu
程序显示行号
>> :
dd
删除一行
>> ESC: gg=G
自动整理代码
2.
文本输入模式:按
i
/ a进入
进入文本输入模式,即可编辑代码,注意只能键盘操作, 鼠标不行。
安装
gcc linux
编译器:
sudo apt‐get install gcc
写完的程序: test.c
我们要将写完的程序 进行编译,生成二进制文件。
gcc test.c
a.out: 编译完之后默认生成的文件
a.out: 编译完之后默认生成的文件
指定生成的文件名
gcc test.c–o hello
四、Linux文件:
1、open()函数:
Linux
自带的工具:
man
手册:
man 1
是普通的
shell
命令,比如
ls
man 2
是系统调用函数,比如
open
,
write
说明 eg:man 2 open
pathname
:文件的路径名,如果只写文件名,就默认当前目录,如果在文件名加上路径,就按照绝对路径来打开文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> // open()函数头文件
int open(const char *pathname, int flags); // 比较常见
int open(const char *pathname, int flags, mode_t mode);
O_RDONLY:只读模式 0x 0000 0000
O_WRONLY:只写模式 0x 0000 0001
O_RDWR: 可读可写 0x 0000 0002
O_APPEND: 表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。0x00002000
O_CREAT:表示如果指定文件不存在,则创建这个文件 0x0000 0100
O_EXCL: 表示如果要创建的文件已存在,则出错,同时返回-1,并且修改errno 的值。
O_TRUNC: 表示截断,如果文件存在,并且以只写、读写方式打开,则将其长度截断为0。
O_NOCTTY: 如果路径名指向终端设备,不要把这个设备用作控制终端
2、Close()函数 :
#include <unistd.h>//close()头文件
int close(int fd);
功能就是简单的关闭文件
五、Linux文件权限属性:
Linux
系统中采用三位十进制数表示权限,如
0755
,
0644.
7 1+2+4
5 1+4
5 1+4
ABCD
A- 0
, 表示十进制
B
-用户
C
-组用户
D
-其他用户
‐‐‐ ‐> 0 (no excute , nowrite ,no read)
‐‐x ‐> 1 excute, (nowrite, no read)
‐w‐ ‐> 2 write
r‐‐ ‐> 4 read
‐wx ‐> 3 write, excute
r‐x ‐> 5 read, excute
rw‐ ‐> 6 read, write
rwx ‐> 7 read, write , excute
// int open(const char *pathname, int flags, mode_t mode);
open("/home/lhy/mm",O_RDWR | O_CREAT, 0755); /* 示例 */