c/c++基础编程知识
文章平均质量分 65
c/c++/linux 基础编程知识
沉沦者
纯粹个人学习笔记,以记事为主。
展开
-
ARM汇编指令学习---基于启动文件startup.S分析
本文主要是基于启动文件startup.s对ARM汇编指令进行学习分析。以 . 开头一般是伪汇编/操作指令,形如:.section伪操作来定义一个段,形如:.section .testsection //定义一个testsection段汇编系统预定义了一些段名:.text:代码段.data:初始化数据段.bss:未初始化的数据段.rodata:只读数据段.global:定义一个全局符号,通常是为ld使用。例子如下:.global _start_start: //_start符号,汇编器原创 2022-10-24 22:37:12 · 2660 阅读 · 0 评论 -
Linux socket 学习
本文主要是介绍在linux socket编程时常用的函数以及结构体类型。一、主机字节序和网络字节序介绍1.大端和小端1)小端字节序:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2)大端字节序:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。通常Inter x86、ARM核采用的是小端模式,Power PC、MIPS UNIX和HP-PA UNIX采用大端模式。2.主机字节序:不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫做主机序。3.网原创 2021-01-09 17:51:03 · 106 阅读 · 0 评论 -
Linux 下读写函数的介绍(系统调用、c库函数、socket通信)
一、系统调用读写函数1、write函数原型:ssize_t write (int fd, const void * buf, size_t count);说明:write()会把参数buf 所指的内存写入count 个字节到参数fd 所指的文件内.返回值:(1)如果顺利write()会返回实际写入的字节数.(2)当有错误发生时则返回-1, 错误代码存入errno 中.错误代码:EINTR 此调用被信号所中断.EAGAIN 当使用不可阻断I/O 时 (O_NONBLOCK), 若无数据可读取原创 2021-01-23 17:59:30 · 505 阅读 · 1 评论 -
Linux 文件学习
1、fopen()函数fopen函数用于打开文件, 其调用格式为:FILE *fopen(char *filename, *type);参数:fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分第二个形式参数表示打开文件的类型“r” 打开文字文件只读“w” 创建文字文件只写“a” 增补, 如果文件不存在则创建一个“r+” 打开一个文字文件读/写“w+” 创建一个文字文件读原创 2021-01-10 22:43:51 · 142 阅读 · 0 评论 -
Linux 下动态库生成 及dlopen、dlsym方式加载使用
一、生成动态库calculate.c文件int add(int a, int b){ return a+b;}int sub(int a, int b){ return a-b;}int mul(int a, int b){ return a*b;}float div(int a, int b){ return a / b;} 编译生成动态库gcc -fPIC -shared caculate.c -o libcaculate.原创 2021-01-20 21:55:59 · 556 阅读 · 0 评论 -
Linux 线程学习及示例
头文件:#include <pthread.h>一、pthread_create 函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);功能:创建线程参数:thread:指向线程标识符的指针。attr:线程属性start_routine:线程运行函数地址arg:运行函数的参数返回值:0:成功非0:失败原创 2021-01-21 14:41:54 · 234 阅读 · 0 评论 -
Linux 常用函数学习
1、gethostname函数原型:int gethostname(char *name, size_t len);功能:返回本地主机的标准主机名头文件:#include <unistd.h>参数:name:其长度必须为len字节或是更长,存获得的主机名。len:接收缓冲区name的最大长度:返回值:成功:返回0错误:返回-1. 错误号存放在外部变量errno中。2、gethostbyname函数原型:struct hostent *gethostbyname(const原创 2021-01-16 22:35:29 · 453 阅读 · 0 评论 -
linux内核定时器
一、timer 定时器工作流程:1)创建timer,编写定时器处理函数;2)为timer的expires、data、function赋值;3)调用add_timer将timer加入列表;4)定时器到期时,function被执行。接口介绍:#include<linux/timer.h> //头文件struct timer_list{ struct list_head list; //linux中对所有定时器实行链表管理,此为链表头结点 unsigned long原创 2021-01-13 22:01:29 · 337 阅读 · 0 评论 -
unix Socket进程间通信
结构体部分介绍typs.h# define __STD_TYPE typedef#define __U32_TYPE unsigned int__STD_TYPE __U32_TYPE __socklen_t;unistd.htypedef __socklen_t socklen_t;linux/un.h#define UNIX_PATH_MAX 108struct sockaddr_un { sa_family_t sun_family; /*原创 2021-01-23 21:45:36 · 585 阅读 · 0 评论 -
Linux Socket 编程学习
一、Socket起源网络中进程之间如何通信、如何标识进程?网络层的ip地址:用来标识网络中的主机传输层的协议+端口:用来标识主机中的应用程序(进程)总结:利用ip地址、协议、端口可以标识网络中的进程。二、socket函数1.socket函数原型:int socket(int domain, int type, int protocol)功能:socket()用于创建一个socket描述符,唯一标识一个socket,对应于普通文件的打开操作参数:domain:协议域,又称为协议族。常用的协原创 2021-01-13 07:58:52 · 120 阅读 · 0 评论 -
内存分配函数 (calloc、malloc、realloc函数)
函数头文件位置:#include <stdlib.h>1、malloc函数原型:void *malloc(unsigned int num_bytes)功能:申请内存空间参数:num_byte:申请的空间大小返回值:成功:返回分配的空间地址失败:返回空指针 NULL例如:int *p = (int )malloc(20sizeof(int))2、calloc函数原型:void *calloc(size_t n, size_t size)功能:申请内存空间参数:n原创 2021-01-16 17:30:50 · 1431 阅读 · 0 评论 -
Linux 进程学习及使用
一、进程的相关概念进程:正在执行的程序程序:可执行的二进制文件僵尸进程:当前进程运行结束,但其资源没有被回收。产生僵尸:子进程退出父进程不使用wait 父进程不能退出。孤儿进程:当前进程的父进程提前结束,此进程被称为孤儿进程。孤儿进程会被1号进程收养,并最终由1号进程回收资源。进程的内存结构:采用虚拟内存管理技术,使得每个进程都有独立的地址空间。该地址空间是大小为4GB的线性虚拟空间。4GB的地址空间被分为两个部分,用户空间和内核空间,0-3GB是用户空间,3-4GB为内核空间。用户进程在通常情原创 2021-01-24 19:00:49 · 151 阅读 · 0 评论 -
Linux 下 va_start、va_end 学习及使用
本文主要介绍可变参数 函数的实现方法。头文件:#include <stdarg.h>一、函数系列介绍1、va_start函数原型:void va_start(va_list ap, last);ap:va_list 类型的变量,指向参数的指针last:最后一个显式声明的参数,以用来获取第一个变长参数的位置2、va_arg函数原型:type va_arg(va_list ap, type);ap:va_list 类型的变量,指向参数的指针type:指要获取的参数的类型3、va原创 2021-01-17 18:46:40 · 5474 阅读 · 1 评论 -
c语言指针学习
首先指针是个变量,指针的值是另一个变量的地址。指针的类型:(1)int* ptr的指针类型为int*(2)char* ptr的指针类型为char*(3)int** ptr的指针类型为int**(4)int(*ptr)[4]的指针类型为int(*)[4]注:将指针声明中的指针名去掉,就是该指针的指针类型指针指向的类型:(1)int* ptr的指针指向的类型为int(2)char* ptr的指针指向的类型为char(3)int** ptr的指针指向的类型为int*(4)int(*ptr原创 2021-01-31 14:54:39 · 75 阅读 · 0 评论 -
汇编语言语法学习
主要是介绍汇编指令的用法原创 2022-08-13 22:55:25 · 3029 阅读 · 0 评论