• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
zuoanddie
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  嵌入式

1 2 下一页
Linux-线程同步-信号量集(day16)

该文被密码保护。
posted @ 2019-07-20 10:31 zuoanddie 阅读(1) 评论(0) 推荐(0)
Linux-线程同步(day14续)

摘要:一、线程的基础 二、线程的创建、退出、分离、汇合 三、线程对共享资源的访问 四、线程的同步 三、线程对共享(临界)资源的访问 线程创建完毕,进程中的所有线程是异步的。所以线程函数尽量写成可重入的,可以保证线程函数的安全。即尽量将函数所用到的资源控制在栈或堆中。 例:线程函数不是可重入函数 四、线程的 阅读全文
posted @ 2019-07-18 01:43 zuoanddie 阅读(165) 评论(0) 推荐(0)
Linux之线程(day14)

摘要:一、线程的基础 二、线程的创建、退出、分离、汇合 三、线程对共享资源的访问 四、线程的同步 以下线程皆为posix线程 一、线程的基础 进程是资源分配的基本单位,线程是执行的基本单位。 一个进程中可以有多个线程,但至少要有一个主线程。 线程共享进程资源。线程切换和线程通讯都很灵活。每个线程都有自己独 阅读全文
posted @ 2019-07-16 16:53 zuoanddie 阅读(170) 评论(0) 推荐(0)
Linux-网络编程-UDP网络编程(day13续2)

摘要:一、基于TCP的网络编程(续day12) 二、并发服务器 三、基于UDP的网络编程 三、基于UDP的网络编程 1、基于UDP网络编程基础 (1)报头格式 头部为8个字节 (2)编程模型 或者 (3)相关函数 sendto(2) #include<sys/types.h> #include<sys/s 阅读全文
posted @ 2019-06-28 00:28 zuoanddie 阅读(300) 评论(0) 推荐(0)
Linux-网络编程(day13续1)

摘要:一、基于TCP的网络编程(续day12) 二、并发服务器 三、基于UDP的网络编程 二、并发服务器 在一中提到,一个服务器和客户端通讯的时候,其他客户端不能和服务器通讯。可以通过以下实现并发: 1、使用线程实现并发服务器 见后续 2、使用多路复用技术实现服务器并发 使用select(2)、poll( 阅读全文
posted @ 2019-06-22 22:19 zuoanddie 阅读(119) 评论(0) 推荐(0)
Linux-网络编程(day13)

摘要:一、基于TCP的网络编程(续day12) 二、并发服务器 三、基于UDP的网络编程 一、基于TCP的网络编程(续day12) 1、昨天的例子客户端只能向指定的服务器端发送数据,可以利用主函数参数传递命令行参数,从而接收任意服务器地址。同时也可以实现两台机器之间的通信(可以事先使用ping命令查看是否 阅读全文
posted @ 2019-06-22 22:18 zuoanddie 阅读(202) 评论(0) 推荐(0)
Linux—网络编程(day12)

摘要:一、网络基础知识 二、基于TCP的网络编程 二、基于TCP的网络编程 1、编程中用到的辅助函数 (1)主机字节序和网络字节序的转换 因为数据存储方式涉及大端和小端,不同方式通信时需要转换,网络字节序为大端;可以使用以下函数: #include<arpa.inet.h> uint32_t htonl( 阅读全文
posted @ 2019-06-22 17:10 zuoanddie 阅读(211) 评论(0) 推荐(0)
Linux-close_on_exec标志位

摘要:close_on_exec是一个进程所有文件描述符的标记位图,每个比特位代表一个打开的文件描述符,用于确定在调用系统调用execve()时需要关闭的文件句柄 (参见include/fcntl.h)。 当一个程序使用fork()函数创建了一个子进程时,往往会在该子进程中调用execve()函数加载执行 阅读全文
posted @ 2019-06-20 18:30 zuoanddie 阅读(1523) 评论(0) 推荐(0)
Linux—网络基础与网络编程(day12)

该文被密码保护。
posted @ 2019-06-18 13:35 zuoanddie 阅读(7) 评论(0) 推荐(0)
Linux—网络与网络协议基础(day11)

该文被密码保护。
posted @ 2019-06-16 22:00 zuoanddie 阅读(3) 评论(0) 推荐(0)
Linux-IPC进程间通信(day11)

摘要:一、IPC进程间通讯(system v IPC) 二、网络基础知识 一、IPC进程间通讯(system v IPC) 包含三个方面: 1、消息队列 2、共享内存 3、信号量集 可以使用ipcs查看system v IPC的对象 IPC的操作主要有以下几个步骤: 1、获取一个键值 ftok(3) #i 阅读全文
posted @ 2019-06-16 18:51 zuoanddie 阅读(510) 评论(0) 推荐(0)
Linux-setitimer实现定时器(day10)

摘要:目录 一、信号阻塞与信号未决 二、pause(2)的使用 三、信号传送过程处理 四、可重入函数 五、编写代码实现信号处理函数的继承 六、setitimer实现定时器 六、setitimer实现定时器 1、系统计时器 系统运行一个进程的时候,进程所消耗的时间包括三个部分: 用户时间:进程消耗在用户态的 阅读全文
posted @ 2019-06-15 19:15 zuoanddie 阅读(1256) 评论(0) 推荐(0)
Linux-可重入函数(day10)

摘要:目录 一、信号阻塞与信号未决 二、pause(2)的使用 三、信号传送过程处理 四、可重入函数 五、编写代码实现信号处理函数的继承 六、setitimer实现定时器 四、可重入函数 函数使用的变量空间全部分配在栈帧空间中,这样的函数叫做可重入函数。否则成为不可重乳函数。 信号处理函数,尽量保证为可重 阅读全文
posted @ 2019-06-15 01:57 zuoanddie 阅读(241) 评论(0) 推荐(0)
Linux-pause(2)的使用(day10)

摘要:目录 一、信号阻塞与信号未决 二、pause(2)的使用 三、信号传送过程处理 四、可重入函数 五、编写代码实现信号处理函数的继承 六、setitimer实现定时器 二、pause(2)的使用 #include <unistd.h>int pause(void); 功能: pause() 函数使调用 阅读全文
posted @ 2019-06-14 16:55 zuoanddie 阅读(900) 评论(0) 推荐(0)
Linux—信号阻塞与信号未决(day10)

摘要:目录 一、信号阻塞与信号未决 二、pause(2)的使用 三、信号传送过程处理 四、可重入函数 五、编写代码实现信号处理函数的继承 六、setitimer实现定时器 一、信号阻塞与信号未决 进程可以对某个信号设置阻塞或屏蔽,可是使用sigset_t(信号集)这个数据类型进行操作,对sigset_t操 阅读全文
posted @ 2019-06-14 14:35 zuoanddie 阅读(397) 评论(0) 推荐(0)
Linux—信号(day09)

摘要:目录 一、使用C程序访问环境变量 二、文件输入重定向 三、管道 四、信号 四、信号 信号就是软件模拟的中断,信号是进程的异步通讯机制。 如何查看系统提供的信号:kill -l,下面的数字为信号的编号,编号后面的字符为信号的名称。 man 7 signal,可查看信号帮助 通过shell向进程发送信号 阅读全文
posted @ 2019-06-13 20:11 zuoanddie 阅读(279) 评论(0) 推荐(0)
Linux-管道(day09)

摘要:目录 一、使用C程序访问环境变量 二、文件输入重定向 三、管道 四、信号 三、管道 管道分为:无名管道和有名管道。 1、无名管道 使用pipe(2)可创建无名管道 #include<unistd.h> int pipe(int pipefd[2]); 功能: 创建可用于进程间通信的单向管道 参数: 阅读全文
posted @ 2019-06-13 04:23 zuoanddie 阅读(442) 评论(0) 推荐(0)
Linux—环境变量(day09)

摘要:目录 一、使用C程序访问环境变量 二、文件输入重定向 三、管道 四、信号 一、使用C程序访问环境变量 系统提供一个全局变量,extern char **environ; 内部存放结构如下 1、使用全局变量environ打印系统所有环境变量: 2、使用main(int argc,char *argv, 阅读全文
posted @ 2019-06-12 00:20 zuoanddie 阅读(344) 评论(0) 推荐(0)
Linux-进程虚拟地址空间中加载新映像(续进程基础)

摘要:5、在进程虚拟地址空间中加载新映像 在子进程的虚拟地址空间里加载新的映像,需要使用系统提供的一系列函数: 他们的作用都是执行一个文件,当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exec系列的函数也可以将当前进程替换掉。例如:在shell命令行执 阅读全文
posted @ 2019-06-10 23:33 zuoanddie 阅读(694) 评论(0) 推荐(0)
Linux-进程基础

摘要:知识点比较杂,需要注意逻辑联系 1、程序与进程的区别 程序是静态的,存放在磁盘上,是指令的集合。 进程是程序运行的实例,一个程序运行产生一次产生一个进程。 关于进程,每个进程都有自己的pid,都有自己的PCB,PCB(进程控制块)记录了进程使用到的资源。 进程是资源分配的基本的单位,但是不是执行的基 阅读全文
posted @ 2019-06-09 23:27 zuoanddie 阅读(258) 评论(0) 推荐(0)

1 2 下一页
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3