
Unix环境编程(APUE)
Unix环境下高级编程
Sheerandeng
这个作者很懒,什么都没留下…
展开
-
Note6:进程间通信(IPC)
首先,先来讲一下fork之后,发生了什么事情。由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以fork返回0给它,是因为它随...原创 2019-09-13 12:20:00 · 261 阅读 · 0 评论 -
Note5:多路复用
1. 五种网络I/O模型(1)同步阻塞IO(Blocking IO)即传统的IO模型,在linux中默认情况下所有的socket都是阻塞模式。当用户进程调用了read()这个系统调用,内核就开始了IO的第一个阶段:准备数据。对于网络IO来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候内核就要等待足够的数据到来。而在用户进程这边,整个进程会被阻塞。当内核一直等...原创 2019-03-27 21:35:07 · 582 阅读 · 0 评论 -
Note4:多线程编程2
代码1typedef void *(THREAD_BODY) (void *thread_arg)void *thread_worker(void *ctx);int thread_start(pthread_t *thread_id, THREAD_BODY *thread_workbody, void *thread_arg);第一个参数 thread_id 是一...原创 2019-03-22 19:55:53 · 270 阅读 · 0 评论 -
Note4:多线程编程1
在操作系统原理的术语中,线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本...原创 2019-03-21 20:10:33 · 8099 阅读 · 2 评论 -
Note3:多进程编程
1. 多进程编程理解一个进程,表示只有一个餐厅座位,客户依次等待多进程前台: 表示 父进程/主线程餐厅内服务员: 表示 子进程正在运行的程序及其占用的资源(CPU、内存、系统资源等)叫做进程编译器gcc编译生成CPU可识别的二进制可执行程序并保存在存储介质上而一旦我们通过命令(./a.out)开始运行时,那正在运行的这个程序及其占用的资源就叫做进程了2. 进程空间内存布局编译出来...原创 2019-03-14 19:51:57 · 475 阅读 · 0 评论 -
Note2:使用socket套接字通信
1. socket是什么意思?n. 插座;插口;窝;穴孔;套接口,套接字vt. 装上或插入插座2. 套接字是什么?套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。非常非常简单的举例说明下:Socket = Ip address+ TCP/UDP + port...原创 2019-03-13 21:18:35 · 513 阅读 · 0 评论 -
Note1:APUE引言
一、UNIX/Linux前世今生UNIX来源20世纪60年代是大型、复杂操作系统盛行的年代,比如IBM的OS/360和Honeywell的Multics系统。OS/360是历史上最成功的软件项目之一,而 Multics虽然持续存在了多年,却从来没有被广泛应用过。贝尔实验室曾经是Multics项目的最初参与者,但是因为考虑到该项目的复杂性和缺乏进展而于1969年退出。鉴于Mutics项目不愉...原创 2019-09-12 23:39:05 · 274 阅读 · 0 评论 -
Linux串口通信2——串口编程抽象化
设置串口、打开串口、配置串口、读/写串口、关闭串口原创 2019-04-23 22:13:15 · 945 阅读 · 1 评论 -
Linux串口通信1——96-N-8-1 格式
一、串口协议(1)串口通信的定义串口通信(Serial Communication),是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。(2)接口标准串口通信的接口标准有很多,有 RS-232C、RS-232、RS-422A、RS-485 等。常用的就是 RS-232 和...原创 2019-04-23 20:12:33 · 3900 阅读 · 0 评论 -
Linux网络编程
ISO:International Organization for Standardization(国际标准化组织)OSI:Open System Interconnection(开放式系统互联)国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层...原创 2019-05-05 15:00:38 · 269 阅读 · 0 评论 -
串口转socket通信
(1)串口转socket的思路原创 2019-05-08 22:21:20 · 767 阅读 · 0 评论 -
TLV协议——实现封包与解析
问题1,数据可能重合加包头问题2,数据可能会跳变加CRC校验问题3,包头可能在TLV中加CRC校验原创 2019-03-31 16:06:39 · 14179 阅读 · 2 评论 -
把代码上传到Gitblit云端
1. 登陆Git服务器http://studio.iot-yun.com:8088/2. 选择登陆账号(进入网址后的右上角)3. 点击students库4. 进入之后,复制版本库地址5.上传代码登陆SecureCRT,在自己的文件夹下输入 git clone http://studio.iot-yun.com:8088/r/students.gitgit add 软件名...原创 2019-03-16 18:41:11 · 2106 阅读 · 1 评论