0
点赞
收藏
分享

微信扫一扫

Linux文件编程

哈哈我是你爹呀 2022-02-23 阅读 44

一、Linux系统调用及用户编程接口(API)

1、系统调用

        操作系统提供给用户的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的的服务

        系统调用并不是直接与程序员进行交互的,它仅仅是一个通过软中断机制向内核提交请求,以获取内核服务的接口。在实际使用中程序员调用的通常是用户编程接口—API

        系统命令相对API更高了一层,它实际上一个可执行程序,它的内部引用了用户编程接口(API)来实现相应的功能

2、用户程序不能直接访问系统内核提供的服务的原因

        由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。

核心(Kernel)的基础功能

本地存储

  • 文件操作(系统调用、C库函数)
  • 数据库(数据库指令、C编程)

多任务

  • 进程
    • 创建方法:for、vfor;
    • 等待wait;
    • 退出qxit;
    • 让当前进程执行新的任务exec;
  • 进程间的通讯
    • 管道通信
      • 有名
      • 无名
    • 信号(唯一异步)
    • 共享内存;(效率高)
    • 消息队列;
  • 线程(同一进程
    • 创建(create)
    • 退出(qxit)
    • 等待(join)
    • 同步(复制锁条件变量)

网络编程

  • TCP——有链接、有协议、有先后
    • 并发
    • socket
  • UDP
    • 循环——线程节省内存空间

Linux中文件及文件描述符概述

 1、Linux文件

  • Linux一点哲学,“一切皆为文件”;在Linux中对目录和设备的操作都等同于对文件的操作;
  • Linux文件可分为:普通文件,目录文件,链接文件,设备文件

2、文件描述符

不带缓存的(系统调用)——文件访问

系统调用

  • 创建
  • 打开
  • 关闭

库函数

  • 创建
  • 打开
  • 读字符
  • 写字符

头文件,编程接口,编程接口对应函数……类型,用法,步骤

带缓存的(库函数)——文件访问

举报

相关推荐

0 条评论