Linux C
linke_linux
这个作者很懒,什么都没留下…
展开
-
记一次项目的死锁分析
1.场景公司项目使用多线程开发,因此使用gdb exec -c corefile运行core文件后,使用bt打印堆栈信息 看不出问题,需要进入到线程内部分析。2.分析 1. info threads 打印线程信息 可以看到有多个__lll_lock_wait () , 看到这里,我们推测可能是锁出现问题了。那么继续往,进入到线程内部,随便找一个是__lll_lock...原创 2019-11-13 12:25:03 · 235 阅读 · 0 评论 -
堆排序(大顶推)
堆排序图片和描述转载于https://www.cnblogs.com/lanhaicode/p/10546257.html,代码是根据该描述以自己的理解自己实现的。1、什么是堆?堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组按照堆的特点可以把堆分为大顶堆和小顶堆大顶堆:...转载 2019-10-25 09:52:34 · 1160 阅读 · 0 评论 -
海量数据处理算法—Bit-Map
1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们...转载 2019-08-19 18:08:42 · 159 阅读 · 0 评论 -
c 语言函数返回char **类型
char **test(char *str,int *retsize){ int i; char **s; s =malloc(sizeof(char *)*10); //这里需要*10,因为下面使用了10个指针数组。否则会出现乱码。等价于char *s[10] for (i=0;i<10;i++) { s[*retsize] =...原创 2019-06-28 09:18:34 · 1469 阅读 · 0 评论 -
const 与define 的区别
define1.在预处理阶段,将宏定义进行展开,进行替换2.无类型,不做类型检查const:1.在定义const 变量时,需要初始化,因为以后就不能改变了2.对于指针来说可以指定指针为const ,也可以指定指针所指向的内容为const,或二者同时为const3.在函数声明中,const 作为形参,表示是一个输入参数,不能够修改。4.对于类的成员函数,若指定为const...原创 2019-03-25 11:19:02 · 232 阅读 · 0 评论 -
引用和指针的区别
一:引用与指针的区别1.引用必须在定义时初始化,指针不必2.引用不能为空,指针可以为空3.引用绑定一个变量,为变量的别名,指针可以指向其他变量。4.定义一个指针变量需要分配内存。引用不占用内存二:值传递,地址传递,引用传递的区别值传递:会为形参重新分配内存空间,将实参的值拷贝给形参,形参的值不会影响实参,函数调用结束后释放地址传递:形参为指针变量,将实参的地址传...原创 2019-03-25 11:12:22 · 96 阅读 · 0 评论 -
c/c++ static 关键字介绍
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:#include<iostream>u...翻译 2019-03-25 10:40:07 · 84 阅读 · 0 评论 -
ftp文件传输服务
ftp包括两种传输模式,主动和被动方式 主动方式:在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。FTP的主要问题实...转载 2019-02-15 10:05:33 · 535 阅读 · 1 评论 -
关于指针数组与数组指针的事例
该程序都是从函数内获取5个学生的编号和姓名,利用指针数组和数组指针达到同一个目的。#include <stdio.h>#include <stdlib.h>#include <string.h>struct st_info{ int icnt; char name[10];};数组指针方式的实现struct st_info...原创 2018-08-10 19:11:03 · 277 阅读 · 0 评论 -
动态so生成以及调用
vi hello.c //要生成的动态库文件名、#include <stdio.h>int fun(char *c){ printf("%s\n",c);}vi callso.c//要调用动态库的文件int main(){fun("fun is a shared library");}vi makefileCFALGS= -fPIC -sharedall: lib binbin:...原创 2018-05-29 11:04:34 · 407 阅读 · 0 评论 -
简单的模式匹配算法
#include <stdio.h>#include <string.h>#include <stdlib.h>int BFindex(char *src,char *T){ int i=0; int index=0; int j=0; char *s =src; if (strlen(src) <0 ||strlen(T)&...原创 2018-05-23 17:28:32 · 1218 阅读 · 0 评论 -
可变参数的使用
int max(int count, ...){ va_list ap;//1)定义一个可变参数,这个地方其实是一个指针,用于访问可变参数中的参数列表 va_start(ap,count);//2)初始化可变参数,并把刚定义的指针指向第一个参数。 int maximum = -1;//假设这都是正整数求最大值,如果不是,就可以把maximum设为最...原创 2018-05-23 16:36:43 · 282 阅读 · 0 评论 -
指针数组与二级指针的区别
char **ptr;//二级指针char *ptr[]={NULL,NULL,NULL};//指针数组。**ptr 是一个存放指针的指针,因此使用前需先开辟一段空间。而*ptr[] 指针数组表示存放指针的数组,是一个数组,使用前不需要开辟空间。但是对于存放数据时,都需要开辟空间来使用。因此二级指针需要1,2步操作,指针数组只需第二步操作。1.ptr =malloc(3 *sizeof (cha...原创 2018-05-07 15:31:09 · 2405 阅读 · 0 评论 -
对System V 信号量的使用
该文章主要是讲解了sem_p,sem_v的操作,对于多进程同时操作共享内存时,利用对semget,semctl实现对互斥量的同步。#include <sys/shm.h>#include <sys/sem.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include ...原创 2018-03-22 19:15:35 · 291 阅读 · 0 评论 -
单链表的转置、排序操作
该代码主要是针对对链表操作不是很熟悉的朋友,也是自己在面试当中经常 碰到的编程问题,因此利用业余时间写下了此练习性质的程序。以下是源代码:#include <stdio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>struct st{ char na...原创 2018-03-09 18:17:38 · 1260 阅读 · 0 评论 -
ORA-1480 str 的结尾NULL 字符缺失
在Proc*c 编程时,出现ORA-1480错误的原因:是我们定义变量的长度比要插入字符串的长度小。举例:数据库定义变量的长度 name varchar2[10]。EXEC SQL BEGIN DECLARE SECTION; char name[11];EXEC SQL END DECLARE SECTION;当要插入的字符长度大于11时,如 “这是一个人的名字”长度为12 。就会出现NU...原创 2018-03-07 10:50:02 · 7047 阅读 · 0 评论 -
Proc*c 游标的使用
本文你主要讲述动态游标以及Blob类型的数据转换为Char类型的应用。动态游标主要应用在表名,列名不确定的情况。假设name 的类型为Blob 类型。那么取出时临时保存到Blob 空间需要先 EXEC SQL ALLOCATE blob开辟空间。1.首先拼接字符串语句。 sprintf(sql,"select name,id from %s m where 条件");2. EXEC SQL ...原创 2018-02-27 12:41:47 · 521 阅读 · 0 评论