Linux的系统下的文件打开与关闭以及文件权限属性的设置(附带超详细的Linux常用命令与vi编译器的安装教程)

先上代码,再说废话

#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: 编译完之后默认生成的文件
指定生成的文件名 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); /* 示例 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值