c
欸嘿嘿嘿
专业物联网,什么都会什么都不会
展开
-
linux内核笔记(一)
需要了解知识:LinuxC语言Makefile概述Linux是宏内核(或单内核)的操作体系统。(Windows微内核)宏内核是所有的内核功能被整体编译在一起,形成一个单独的内核镜像,内核中各模块的交互是通过直接的函数调用,效率非常高。微内核是实现内核中相当关键和核心的一部分,其他功能模块被单独编译,功能模块之间的交互通过微内核提供的某种通信机制来建立的。宏内核如果要增加、删除、修改内核的某个功能,就不得不重新编译整个内核,为了解决这一问题,引入了内核模块。内核模块是被单独编译原创 2020-08-05 16:26:38 · 152 阅读 · 0 评论 -
make编译笔记(六)
make工具与函数库练习与答案原创 2020-08-10 23:05:27 · 219 阅读 · 0 评论 -
LinuxC网络编程笔记(三)
原始套接字编程原始套接字使一种非面向连接的,c/s传输方式的网络编程。使用原始套接字编程进行服务器端与客户端的通信前,都要创建各自的套接字,然后对应的套接字进行数据传输。在数据传输过程中,需要使用sendto()函数和recvfrom()函数进行发送与接收,再发送与接收函数中设置相应的IP地址。原始套接字往往应用于高级网络编程,例如网络嗅探器sniffer、拒绝服务攻击DoS、IP欺骗等。并且还可以通过原始套接字来模拟IP的一些实用工具,例如PING命令。创建函数原始套接字编程是SOCK_R原创 2020-07-29 22:24:45 · 228 阅读 · 0 评论 -
LinuxC网络编程笔记(二)
TCP套接字编程例:UDP套接字编程数据传输系统调用发送函数接收函数基于UDP协议的C/S机制的网络通信的工作原理例:原始套接字编程创建函数设置套接字选项原始套接字的发送与接收发送报文的原则接收报文的特点报文处理报文头部结构ICMP协议练习与答案...原创 2020-07-28 20:22:58 · 221 阅读 · 0 评论 -
LinuxC网络编程笔记(一)
OSI模型TCP/IP协议IP地址名称地址转换成数字地址数字地址转成名字地址得到当前主机的名字的函数服务器名与端口号之间额转换函数套接字编程原创 2020-07-27 16:16:51 · 132 阅读 · 0 评论 -
信号及信号处理笔记
在终端输入kill -1可以列出Linux中的所有信号。信号处理信号最为进程间通信的机制,主要用于异步事件。有3种基本处理信号的方法:默认。系统为每一个信号都设置了默认的处理方式,通常为终止进程。 捕捉信,使进程执行指定的程序 忽略信号,不处理,进程继续执行。产生信号捕捉信号信号阻塞信号处理安全问题...原创 2020-07-21 23:55:29 · 300 阅读 · 0 评论 -
文件操作笔记(二)
特殊文件的操作目录文件的操作获取当前的工作目录改变当前的工作目录创建和删除目录打开与关闭文件读取目录文件链接文件的操作硬链接符号链接设备文件练习与答案1.通过系统调用函数symlink()为已经存在的文件eq1.c创建一个符号链接,名为symbol.c。打开这个符号链接文件,获取该文件的名称,10s后,通过unlink()函数删除此符号链接。2.使用mkdir()函数创建一个新的工作目录文件...原创 2020-07-15 22:21:13 · 190 阅读 · 1 评论 -
文件的输入和输出操作笔记
文件I/O操作原创 2020-07-19 23:19:22 · 349 阅读 · 0 评论 -
进程间通信笔记(二)
消息队列消息队列是一种通过链表结构组织的一组消息,消息是链表中具有一定格式及优先级的数据记录。消息队列与其他两种进程间通信对象(共享内存,信号量)相同,都存放在内核中,多个进程通过消息队列的标识符对消息数据进行传送,实现进程间的通信。每个消息队列都有与之对应的结构,用于定义一个消息队列的对象。结构体类型定义(部分关键)struct msqid_ds{struct ipc_perm msg_perm;//消息队列指向ipc_perm结构的指针struct msg *msg_first;//指原创 2020-07-15 12:56:38 · 174 阅读 · 0 评论 -
进程间通信笔记(一)
概述进程间通信(Inter-Process Communication,IPC)是指两个或多个不同的进程间传递或交换信息,通过信息的传递建立几个进程间的联系,协调一个系统中的多个进程之间的行为。进程间通信的工作原理进程与进程之前互相独立,各自运行在自己的虚拟内存中。进程之间建立联系,通过内核,在内核中开辟一个缓冲区,两个进程的信息在缓冲区中进行交换或者传递。-》通过内核。进程间通信的主要分类在linux中,常见的包括管道通信、共享内存通信、信号量通信、消息队列通信、套接字(SOCKET)原创 2020-07-15 00:06:06 · 281 阅读 · 0 评论 -
进程控制笔记(二)
多个进程间的关系linux系统支持多进程同时运行,多个进程分配到多个处理上运行,快速方便。但多个进程在一个系统中协调运行,并不容易。进程组一个或多个进程的集合。作为一个进程组,里面的每一个进程都有统一的进程标志。可以通过getpgrp()函数获取进程组ID。#include<sys/types.h>#include<unistd.h>pid_t getpgrp(void);在进程组中有一个特色的进程的ID与进程组ID相同。使用setpgid()函数创原创 2020-07-12 22:30:15 · 142 阅读 · 0 评论 -
进程控制笔记(一)
进程具有五种特性:动态性 并发性 独立性 异步性 结构特性进程的相关信息:进程ID:在Linux系统中,每个进程都有其唯一的ID。在linux下编写关于进程的C程序,经常会使用到一个数据类型pid_t,这个类型专门用来定义进程的ID,是一个非负的整数。进程的状态:三种基本状态分别是运行状态、等待状态、结束状态。还有就绪、挂起和僵尸等状态。进程的切换:就是从正在运行的进程中收回处理器的使用权,等待运行进程进来时占有此时的处理器。虚拟内存:在linux系统中,每个进程都运行在各自的原创 2020-07-11 23:36:56 · 135 阅读 · 0 评论 -
GDB调试工具笔记
简介:是linux平台最常见的调试工具。通过设置断点、单步跟踪、显示数据等功能可以快速找到bug,然后修bug。GDB是专门用来调试C和C++程序的,可以在程序运行时观察程序的内部结构和内存的使用情况。直接在终端输入gdb命令进入GDB调试界面。GDB调试器主要实现3方面的功能启动被调试的程序 使被调试的程序在指定位置停住 当程序被停住时,可以检查程序此时的状态命令启动程序 设置断点 查看信息 分布运行 改变环境...原创 2020-07-07 23:27:43 · 257 阅读 · 0 评论 -
GCC编译器笔记
简介目前在Linux下最常用的C语言编译器是GCC(GUN Compiler Collection).是GUN项目中符合ANSI C标准的编译系统。能够编译C、C++、Object C等语言编写的程序,可以通过不同的前端模块来支持各种语言,如JAVA等。基本常用参数GCC编译器的调用参数有100多个,介绍几个最基本常用的参数。GCC的基本用法gcc [options] [filenames]options为编译器需要的参数,filenames为相关文件的名称。-c只编译,原创 2020-07-05 21:58:19 · 189 阅读 · 0 评论 -
c语言内存管理笔记
根据内存空间分配方式的不同,可以分为动态内存和静态内存。动态内存通常当用户无法确定内存大小,或内存不够用,采用动态内存方式分配内存。使用动态内存时,程序员自行控制内存的分配和释放,内存的分配是在程序运行时完成的,占用CPU资源。使用好,提高效率;使用不好,程序崩溃。静态内存设置程序开始运行时由编译器分配的内存,他的分配是在程序开始编译时完成的。不占用CPU资源。系统分配,系统释放,使用方便。减少了内存资源的风险,如内存泄漏,内存耗尽等问题。动态内存管理的基本方式分配内存在内存不再原创 2020-07-05 14:59:03 · 118 阅读 · 0 评论 -
c语言基本知识笔记
c语言基础知识c语言特点:高效性c语言生成目标代码的质量高,执行效率高,具有友好的可读性、编写性。一般情况下,c语言生产的目标代码执行效率只比汇编程序低10%~20%灵活性c语言共有32个关键字,9种控制语句,书写形式自由,语法不拘一格。功能丰富c语言拥有多种数据结构,可以使用丰富的运算符和自定义的结构类型来表达多种复杂的数据结构,完成复杂的功能。表达能力强 移植性好可以进行跨平台的程序开发操作数据类型:程序=算法+数据结构数据分为常量和变量(数据不可变与可变)原创 2020-07-05 13:51:26 · 3587 阅读 · 0 评论