C语言
无感007
这个作者很懒,什么都没留下…
展开
-
C语言函数书写
1.声明与定义extern int a;声明的a为全局变量(即使声明在函数体内)。2.函数参数的求值顺序依赖编译器的实现(最好不写K,填入值)K=k++ + k++;(后置操作不会立即反应到K;而前置++k立即实现反应到k)K=2 + 2 ; k=6;顺序点:1)&& || ? ; 以及逗号表达式的每个运算之后2)函数调用中对所有实际参数的求值完原创 2017-07-21 15:21:32 · 1084 阅读 · 0 评论 -
Linux使用代码
1.读取物理内存/dev/mem前0xf代码原著https://www.cnblogs.com/wangfengju/p/6172438.html#include<stdio.h> #include<unistd.h> #include<sys/mman.h> #include<sys/types.h> #include<...转载 2018-12-13 14:18:32 · 188 阅读 · 0 评论 -
linux下多线程之pthread_detach(pthread_self())
pthread_detach(pthread_self())linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。若是unjoinabl...转载 2018-07-31 14:08:59 · 641 阅读 · 0 评论 -
获取ARP表
arpGet("ens33", "192.168.74.1");获取ens33网卡下192.168.74.1这一项,如果没有192.168.74.1,返回小于0.#include <stdio.h> #include<unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <转载 2018-07-04 14:13:00 · 2566 阅读 · 0 评论 -
获取cmdline参数
#include<string.h>#include<stdio.h>#include<stdlib.h>#include<fcntl.h> #include <unistd.h>#include<string.h>int main(int argc, char* argv[]){ int fd; int ret = 1; i...原创 2018-07-10 15:23:54 · 3017 阅读 · 0 评论 -
本地Socket通信
服务器端需要绑定端口,客户端也需要绑定端口。s_sock.c#include <stdio.h> #include<unistd.h>#include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #include <errno.h>#define...原创 2018-07-10 14:56:51 · 1052 阅读 · 0 评论 -
每个进程的FD
每个进程默认最多打开1024个文件。每个进程的fd是不相同的:进程A fd=3;与进程B中fd=3;所打开的文件不相同。下面是用于测试每个进程最多打开多少文件。#include<stdio.h> #include<unistd.h>#include<fcntl.h>#include<errno.h>#include<string.h>i...原创 2018-06-27 14:42:49 · 2612 阅读 · 0 评论 -
创建,使用动态库
https://www.cnblogs.com/Anker/p/3527677.html转载 2018-06-25 09:52:29 · 106 阅读 · 0 评论 -
结构体中结构体含有柔性数组
主结构体中次结构体含有柔性数组:分配空间和对最底层(含有柔性数组)结构体类似。#include<stdio.h>#include<string.h>#include<stdlib.h>struct mymsg1{int len;};struct mymsg2{char *cmdline;};struct mymsg3{int len;char *cmdline;...原创 2018-06-25 09:06:36 · 450 阅读 · 0 评论 -
内存字节对其与验证
字节对齐的原则1.基本数据类型自身的对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。3.指定的对齐值:#pragma pack (value)时的指定对齐值value。4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。6...转载 2018-06-23 15:13:12 · 320 阅读 · 0 评论 -
C语言关键字汇总
static (存储在程序静态区)1.未经初始化的静态全局变量会被程序自动初始化为0(在函数体内声明的自动变量的值是随机的,除非它被显式初始化,而在函数体外被声明的自动变量也会被初始化为0);☆2.静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;☆☆3.定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:☆☆1).静态全局变量不能被其它文件所原创 2017-07-16 22:16:43 · 345 阅读 · 0 评论 -
C语言符号
1.注释符号编译器在编译时删除注释,但是以空格替换注释。2.接续符编译器会自动将\去除,将下一行提到后方。可用于宏定义: 3.||与&&||:从左往右运算当遇到条件为真,则停止运算(后续计算将不执行);&&:从左往右运算当遇到条件为假,则停止运算(后续计算将不执行);4.!!:只认0;(!0 -> 1 !-100 -> 0)原创 2017-07-17 14:22:15 · 403 阅读 · 0 评论 -
C语言编译预处理
1.日志打印 #define LOG(S) do{ \time_t t; \struct tm* localtime; \t = time(NULL); \localtime = localtime(&t); \printf(“%s [%s:%d] %s\n”,asctime(localtime),_FILE_,_LINE_,s); \}while(0) 2原创 2017-07-18 14:53:05 · 190 阅读 · 0 评论 -
C语言数组与指针
1.指针需要占用内存空间,指针存储内存地址的值(指针大小为4字节32位);使用时:*号取指针指向的内存地址中的值;声明时:*号表示指针类型*((int*)0X22FFCC)= 1; --->将0X22FFCC声明为int型指针,在对0X22FFCC地址赋值2.传址调用当函数内部想修改外部的值时,使用传址;(如:void func(void *a))3.数组地址与数组原创 2017-07-19 18:46:41 · 213 阅读 · 0 评论 -
字符操作
1.删除指定字符void del_char(char* str,char ch){ char *p = str; char *q = str; while(*q) { if (*q !=ch) { *p++ = *q; } q++; } *p='\0';}...转载 2018-12-26 11:49:52 · 157 阅读 · 0 评论