Linux c系统编程(一)概述

概述:

  1. Linux c系统编程又叫嵌入式网络编程

    主要涉及:文件,进程,进程间通信,多线程,网络,大并发网络服务器,数据库,shell编程等

  2. Linux操作系统的组成:用户空间,内核空间。

    原因:分成两个空间以保护内核不被用户轻易访问

  3. 用户空间如何访问内核空间?

    系统调用,硬件中断,软件中断

  4. 系统调用:

    用户通过调用操作系统提供的函数(API)来访问内核的数据或者获取服务;

  5. 如何学习嵌入式网络编程?

    1、写(代码)
    2、测试(写demo测试API接口的功能)
    3、项目(知识点整合)

IO编程:

  1. IO编程

    即文件编程(Linux一切皆为文件,硬件设备也被抽象为文件。原因:文件的管理方式简单只有打开,关闭,读写,创建,删除)

  2. 文件描述符

    文件描述符即是文件的id,特点是动态的。只有当你操作这个文件时,系统才会给这个文件配备一个id。

  3. 文件描述符的类型:unsigned int 。

    • 特点二:即文件描述符是有范围的
    • 文件描述符:0:标准输入 1:标准输出 2:标准出错处理(cin,cout,cerr,clog)所以用户创建的文件,它的文件描述符是从3开始的
  4. API:creat ,open ,read ,write ,close ,lseek .仅可以在Linux下使用,
    而c库函数中的fopen ,fclose ,fread ,frwrite ,fseek .可以跨平台使用。

  5. 学习API:1、头文件 2、函数名 3、形参 4、返回值(类型)

基本API及其文件头:

//open&creat:  用于打开或创建一个文件或设备
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname,int flags,mode_t mode)
int creat(const char *pathname,mode_t mode);
//常用的形式: open("./",O_RDWR | O_CREAT | O_APPEND);
//可复选的flags还有: O_RDONLY,O_WRONLY,O_EXCL(文件已存在即报错),O_NOCTTY,O_TRUNC(清空文件原内容),O_NONBLOCK/O_NDELAY(管道fifo专用,屏蔽其他操作) ...
//返回值为文件描述符fd,失败fd=-1;

//read&write:read用于读取文件,write用于向文件描述符所表示的文件执行写入操作
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);//失败返回-1;
ssize_t write(int fd, const void *buf, size_t count);//失败返回-1;
//常用形式: write(fd,buff,strlen(buff));

//lseek:此函数会重新定位被打开文件的位移量,根据参数offset以及whence的组合来决定
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
//offset为正数则向前移|offset|位,为负数则向后移|offset|位
//whence: SEEK_SET(定位在开头),SEEK_END(结尾),SEEK_CUR(当前位置)
//常用形式: lseek(fd,0,SEEK_END);

基本要牢记的文件头集合:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <error.h>
#include <unistd.h>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值