随笔分类 - Linux下C语言编程基础
摘要:1、安装uboot到开发板2、JLINK软件安装3、JLINK连接4、JLINK连接测试ARM汇编程序结构RVDS集成开发环境:新的工具(上一代是ADS)CODEWARRIOR:形成一个可运行的软件(编译链接)AXD:调试器1、AXD安装配置2、AXD调试汇编程序工作模式:1、用户模式2、快速中断模...
阅读全文
摘要:基于TCP-服务器1、创建一个socket,2、绑定IP地址、端口等信息到socket上,用函数bind()3、设置允许的最大连接数,用函数listen()。4、等待来自客户端的连接请求,用accept()5、收发数据,用函数send()和recv(),或者read()和write()6、关闭网络连...
阅读全文
摘要:Socket(套接字),类似文件描述符,三种1、流式套接字(SOCK_STREAM):可以提供可靠的、面向连接的通讯流,它使用TCP协议。TCP保证了数据传输的正确性和顺序性。2、数据报套接字(SOCK_DGRAM):定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,...
阅读全文
摘要:提供了完善强大的网络功能。1、完善的内置网络。协议丰富,和内核紧密。2、提供大量Intenet的软件。3、非常多的命令。完成文件传输。4、远程访问支持。5、安全可靠。Linux网络模型:协议:数据链路层协议:以太网协议网络层协议:IP(Internet协议) ICMP(网际控制报文协议) ARP(地...
阅读全文
摘要:#includepthread_t pthread_self(void)功能:获取调用线程的thread identifer例如:thread_id.c运行结果:清除:线程终止有两种情况:正常终止和非正常终止当某段代码可能出现不可预料的终止时,可以用pthread_cleanup_push和pthr...
阅读全文
摘要:1、创建线程#includeint pthread_create(pthread_t* tidp,const pthread_attr_t *attr,void*(*start_rtn)(void),void*arg)tidp:线程idattr:线程属性(通常为空)start_rtn:线程要执行的函...
阅读全文
摘要:一、线程理论基础使用线程原因:1、比进程更加节俭。线程是轻量级的。进程:代码共享,数据拷贝。线程所有都是共享的。2、通信简单很多3、多线程程序是一种多任务、并发的工作机制。还有如下优点:使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同线程运行于不同的CPU上。改善程序结构:一个...
阅读全文
摘要:主要用途:保护临界资源二值信号灯:最大为1计数信号灯:多进程可访问。减1操作。等待自动唤醒。信号量的集合#include#include#include创建/打开int semget(key_t key,int nsems,int semflg)key:键值,由ftok获得。nsems:指定打开或者...
阅读全文
摘要:一、概述信号通信能够传送信息量有限;管道通信则只能传送无格式的字节流。消息队列(报文队列):就是一个消息的链表。消息是具有特定格式的记录。分类:POSIX消息队列:系统V消息队列:目前被大量使用持续性系统V消息队列是随内核持续的。只有在内核重启或者人工删除时,该消息队列才会被删除。键值:消息队列在内...
阅读全文
摘要:共享内存共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存写入了数据,共享这个内存区域的所有进程就可以立即看到其中的内容。共享内存实现分为连个步骤:一、创建共享内存,使用shmget函数。二、映射共享内存,将这段创建的共享内存映射到具体的进程空间去...
阅读全文
摘要:信号(signal)机制是Unix系统中最为古老的进程间通信机制,很多条件下可以产生一个信号:1、用户按某些按键时,产生信号。2、硬件异常信号:除数为0,无效的存储访问等。3、进程利用kill函数,将信号发送给另一个进程。4、用户利用kill命令将信号发送给其他进程。信号类型:常用类型:SIGHUP...
阅读全文
摘要:一、无命名管道1、什么是管道管道是单向、先进先出的,把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道尾部写入数据,另一个进程(读进程)在管道头部读出数据。2、管道创建无名管道:(只)父进程与子进程间的通信。 有名管道:同一系统中任意两个进程间的通信。无名管道由pipe()函数创...
阅读全文
摘要:一、进程间通信概述:1、目的:为什么要进行进程间通信?1)数据传输:一个进程需要把他的数据发送给另一个进程。2)资源共享:协调共享资源。3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。4)进程控制2、发展Linux进程间通信(IPC)由以下几部分发展而来:1)UNIX进...
阅读全文
摘要:一、获取ID#include#includepid_t getpid(void) 获取本进程IDpid_t getppid(void) 获取父进程ID父进程:现有进程中,创建新的进程。例:getpid.c#include#include#includeint main(){ printf("PI...
阅读全文
摘要:一、进程控制理论基础进程:是一个具有一定独立功能的程序的一次运行活动。程序是静态的,程序在运行的时候是进程。1、进程的特点: 动态性:区别于程序的显著特性 并发性:多个进程可以同时执行 独立性:独立的 异步性:进程与进程之间可以进行异步操作2、进程三态:进程的ID(PID):标志进程的唯一数...
阅读全文
摘要:一、总述make来构建和管理自己的软件工程。GNU的make能够使整个软件工程的编译、链接只需要一个命令就可以完成。make 在执行时,需要一个命名为Makefile的文件。Makefile文件描述了整个工程的编译,链接规则。包括:1、工程中哪些文件需要编译2、需要创建哪些文件3、如何创建这些文件4...
阅读全文
摘要:一、GDB是GNU发布的程序调试工具。有三方面功能:1、启动被调试程序。2、让被调试程序在指定位置停住。3、当程序被停住时,可以检查程序状态(如变量值)。二、GDB调试步骤:1、编译生成可执行文件gcc -g hell.c -o hello2、启动GDBgdb hello3、在main函数处设置断点...
阅读全文
摘要:GNU C Compiler 多平台编译器,是GNU的代表作之一。GCC编译器可以编译链接C\C++\汇编成可执行文件,可执行文件没特殊后缀,看属性。预处理 编译 汇编 链接Gcc通过后缀来区分不同类型文件.c C语言源代码文件.a库文件 由目标文件构成的库文件.C .cc .cxx C++源代码文...
阅读全文

浙公网安备 33010602011771号