QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3825|回复: 0
打印 上一主题 下一主题

嵌入式Linux网络编程·笔记1·Linux C 文件编程

[复制链接]
字体大小: 正常 放大

1178

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-11-24 18:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
                                嵌入式Linux网络编程·笔记1·Linux C 文件编程
    0 i0 B! i9 G/ ALinux C 文件编程 – Linux I/O编程
    3 l& `- {) K( M- `8 T7 P- ]) U- A
    3 e/ E# W6 W. T. J' @7 E3 r1.为什么称为I/O编程?     Linux一点哲学:一切皆为文件。
    2 W: B. |. J* t* M& o$ q8 ]% l! _% @% Y/ _
    2.硬件设备也被抽象为文件:对硬件的操作=对硬件I/O操作=对文件的操作。: y  n6 A& ?* P2 X  _# a6 z0 q

    , W* C/ I# R" ?3.Linux为什么会选择把所有资源抽象成文件?
    ( @2 m) P2 f6 s7 C, }+ P
    # \9 S# {# q0 M    1)文件本质就是字符流 – 二进制;
    " K0 @6 Y( F* D2 @7 ^+ _$ x5 B8 l# W1 J" R8 v8 E; N/ K
        2)文件的操作比较简单:打开、读、写、关闭、设置文件的属性(w/r/a/+);
    + k/ O8 w7 P% R! t9 U1 v/ m* {0 F1 X6 N; B2 K" C
        3)文件系统已较为成熟。
    , @8 P: B; D; }! A9 e. v& I
      Z$ K4 ^; @# Q7 v, c+ c8 \) |4. C语言VS Linux文件操作(二者区别 – 是否有操作系统)
    8 P$ D$ X' @7 ], ~
    # D, [- Y+ d1 Q; I7 y& ?    C语言:fopen、fread、fwrite、fclose、fseek;3 L5 y  H* R+ a* c1 A

    ; d% [1 r4 i2 X- B8 J: r  j    Linux:open、read、write、close、seek。
    . ~1 @6 i8 ]4 A( ?, h/ m! I) G8 V9 x; j( H
    5.Linux文件的类型:目录、普通、设备、链接、管道、堆栈、共享文件。
    . y! e: V6 _* y3 ~
    : f4 H% H) i. \9 h  c6.在Linux下如何操作一个文件?' x/ ]6 `. f3 g# p7 D$ R

    ! k. O( g& H7 i& \    1) 文件描述符作用:已知文件的文件描述符,操作该文件描述符就相当于操作该文件;2 K8 e+ m# f! Q  L8 ?, v- x2 |! Z

    . r  l3 D) [% q& J$ d: \) H    2)文件id:无符号的整型 – unsigned int fd;- j2 d4 B( v$ O7 t4 T; ~9 e; ~
    ( [1 x/ c3 w/ G5 i
        3)文件id的限制:unsigned int – 有取值范围;
    ( p" N( p/ R6 ]+ {; m2 {
    9 I8 \1 _( o" _; M7 W    4)用户自己创建的文件从“3”编号开始。; d2 _; D7 N6 X% a/ A1 I5 ?

    1 S& d8 X& m: O+ a( E) c( _ (注)在Linux系统中,0、1、2这三个文件id有特殊作用, 0代表的是标准输入;1代表的是标准输出;2代表的是标准出错。( q0 q; ~. X: ~- \: n
    ; x  x8 Q2 ?4 c% ?/ d" N8 c' Q
    7.什么时候文件会有自己的id?' k* \; B! k: I6 x

    7 X6 R' n* p7 p( ^+ T   动态分配,当操作一个文件时,操作系统才会给你这个文件的id。
    % n  Q- f  A. Q  h/ E( h# g
    7 `) C3 {. W& s) m3 I7 i总结:
    ! i; j  i" o  q* m; w& K嵌入式网络编程 == 嵌入式Linux C系统编程(文件、进程、进程间通信、多线程、网络、大并发网络服务器、数据库、shell编程
    . \( M7 F& N; W) I# G6 l8 f嵌入式C开发 VS 嵌入式Linux C:使用Linux操作系统提供的功能(文件等)(多任务、网络聊天室)嵌入式Linux应用软件开发; B) M; `! y) {$ o% A. Q  \, |
    Linux操作系统的组成:用户空间、内核空间
    & w) t+ ?1 _7 l$ k( w为什么将Linux操作系统划分为用户空间和内核空间:保护内核不被用户轻易访问% K% }! u  S! \- n
    用户空间如何访问内核空间?系统调用、中断(硬件中断、软件中断)) K' c2 L# M/ z% T- h9 |1 B* Y% V  y
    什么是系统调用?用户通过调用操作系统提供的函数(发生系统调用)来访问内核的数据或者获取服务
    0 X5 |. o5 d1 K  h& D4 |用户如何发生系统调用?调用系统提供的API. E# p# P: d& Z
    API:用户编程接口 == 操作系统提供的可调用函数 (create\open\read\write\close\lseek\fcnl\ioctl\mmap)1 o  T/ b  n- d6 p1 M3 E# V( Y. W
    如何学习嵌入式网络编程?写(代码)、测试(写demo测试API接口的功能)、项目(知识点整合)
    7 R9 u! ?4 t. o& e学习方法:头文件、函数名、函数内每个形参作用、函数返回值& j- g, x; z! {+ V- _
    - E# e/ P5 M* L

    & I( N( U2 O1 Q* |
    * o8 v3 C/ c: U& w9 |; L! f1 d
    . |' E* I. R* v0 t  w, b: d
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-19 11:10 , Processed in 0.417409 second(s), 51 queries .

    回顶部