C语言学习
雨中伴泪
这个作者很懒,什么都没留下…
展开
-
send/sendto和recv/recvfrom的区别
一般情况下:send(),recv()用于TCP,sendto()及recvfrom()用于UDP但是send(),recv()也可以用于UDP,sendto()及recvfrom()也可以用于TCPsendto可以在参数中指定发送的目标地址 , send需要socket已建立连接, sendto 可用于无连接的 socket 对于send的有连接socket,两者一样,sendto最后两个参数没用.send函数int send( SOCKET s , const char FAR *buf ,转载 2021-09-24 10:09:26 · 625 阅读 · 0 评论 -
C语言重入函数与不可重入函数
可重入函数和不可重入函数的概念 在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。如果是在函数体内 动态申请内存的话,即便 新的线程调用这个函数也没事,因为新的线程使用的是新的函数的 新申请的动态内存(静态变量只有一份,所以 多线程对于函数体内的静态变量改变 会有无法修复的结果),所以这类函数就是可重入函数。 在 实时系统的设计中,经常会出转载 2021-04-27 11:58:33 · 656 阅读 · 0 评论 -
系统、机制、任务调度、信号量
实时系统下任务调度总结一、实时系统:能在规定的时间内对发生的事件及时进行相应处理的操作系统。实时系统的实时性分为两类,一种是硬实时,在规定的时间内需要完成相应的任务,否则会造成重大的问题(影响),另外一种是软实时,主要是按照任务的优先级,尽快完成相应的任务即可。二、分时系统多个任务分时共享系统资源,通过将CPU时间划分为多个段,分配给任务,任务获取得到时间片,在时间片的时间范围内执行任务操作。使得每个任务都能获得到CPU资源,在宏观上实现多并发任务。三、协作式管理机制任务切换的时机取决于正在运行原创 2020-12-10 14:15:18 · 361 阅读 · 0 评论 -
任务控制块认识了解
任务控制块任务控制块是一个基于链表的数据结构,任务控制块主要用于记录任务的堆栈栈顶指针、指向下一个任务控制块的指针、任务等待的延迟时间、任务的当前状态标志与任务的优先级别等一些与任务管理有关的属性。任务的识别对于RTOS来说,为每一个任务分配一个称为任务控制块的结构体变量来管理任务,即使用指向任务控制块结构体变量的指针来识别任务。任务控制块是多任务操作系统的核心数据,如果操作错误,可能导致系统崩溃。所以这个指针不应当提供给用户程序。任务控制块的结构体数组struct tn_os_tcb{ j原创 2020-12-07 11:42:54 · 2795 阅读 · 0 评论