- 博客(30)
- 资源 (4)
- 收藏
- 关注
原创 动态库创建与链接
1、动态库文件的创建 (1)编写源文件 (2)编译生成动态库 g++ -fPIC -shared -o libfile_operation.so file_operation.cpp 此编译过程分为两步,等同于下面的两个命令: g++ -c -fPIC file_ope...
2019-03-17 22:45:16
276
原创 静态库创建与链接
1、静态库的创建(1)编写源文件(2)g++-c xxx.cpp编译生成 目标文件(3)使用ar命令将目标文件归档生成静态库 ar -crv libfile_operation.a file_operation.o 选项说明: c 如果需要生成新的库文件,不要警告 r 代替库中现有的文件或者插入...
2019-03-17 21:03:26
277
原创 tail命令使用
1、tail命令 命令的主要用途是将指定的文件的最后部分输出到终端,如果该文件有更新,tail会自己主动刷新。2、tail语法 tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] 参数解释:-f 监视File文件的增长 -c Number ...
2018-12-11 22:38:52
550
原创 hosts文件
1、hosts文件作用hosts文件作用就是将一些常用的域名与其IP地址对应起来,建立一个关联的数据文件,当用户在浏览器中输入域名之后,系统会首先找到hosts文件,从中寻找匹配的域名,如果找到了,就直接访问域名对应的IP地址,如果没有找到,系统会将域名信息发送给DNS域名解析服务器进行解析。(1)加快域名的解析当hosts中有域名与IP地址配置信息时,访问该域名时就不需要进行域名解析...
2018-12-11 22:37:11
257
原创 dns文件
1、dns简介dns为域名解析系统,当本地浏览器输入域名访问网站时,如果本地host中没有配置域名与IP的对应关系,那么域名信息将会被发送到dns服务器上,由dns服务器将域名解析为IP(过程较为复杂,不做赘述),然后将IP信息返回给本地浏览器,浏览器就会根据IP访问对应的主机上的网站服务。2、dns服务器IP配置在局域网中,如果需要解析域名,那么就需要在本机上配置dns地址,linu...
2018-12-11 22:34:59
317
原创 多线程之间同步
1、POSIX信号量#include<semaphore.h>int sem_init(sem_t* sem, int pshared, unsigned int value);int sem_destroy(sem_t* sem);int sem_wait(sem_t* sem);sem_trywait(sem_t* sem);int sem_post(sem_t* sem...
2018-05-20 23:17:06
204
1
原创 多线程编程基础
1、线程创建和结束#include<pthread.h>int pthread_create(pthread_t* thread, const pthread_attr_t* attr, void* (*start_routine)(void*), void* arg)void pthread_exit(void* retval) pthread_create 函数用于创建一个...
2018-05-20 12:18:35
176
原创 进程间通信——信号量
1、信号量介绍 多个进程同时访问系统上的同一资源时,就需要考虑同步问题,以确保在任一时刻只有一个进程对资源独占式访问。通常,我们称访问共享资源的代码为临界区,进程同步,也就是确保同一时刻,只有一个进程进入临界区。 信号量是实现进程同步的一种方式,信号量只能取自然数并且只支持两种操作,即等待和信号,在Linux中称为P、V操作。比如有SV信号量,则P、V操作的含义如下:P(SV),如果S...
2018-05-18 15:04:43
287
原创 进程间通信——管道
1、进程间通信 每个进程有独立的用户地址空间,所以一个进程是看不到另一个进程中的数据包括全局变量。进程间通信是需要通过内核来进行的,内核中开辟一块缓存,不同的进程将数据写到这里或从这里读取,从而实现不同进程之间的通信,内核提供的这种机制称为进程间通信。进程间通信方式有多种,不同的方式提供的共享资源形式不同或者提供者不同。管道就是这其中的一种。2、管道的创建 管道的创建使用pipe()系...
2018-05-17 17:18:41
201
原创 多进程相关系统调用
1、fork函数#include<sys/types.h>#include<unistd.h>pid_t fork(void);函数每次调用都返回两次,在父进程中返回子进程ID,在子进程中返回0。调用失败是返回-1,并置errno。fork函数复制当前进程,在内核进程表中创建一个新的进程表项,新进程很多属性与原进程相同,例如堆栈指针,标志寄存器等,也有属性不同,例如PI...
2018-05-17 11:37:01
245
原创 IO复用——poll系统调用
1、poll函数#include<poll.h>int poll(struct pollfd* fds, nfds_t ndfs, int timeout) poll函数在一定的时间内轮询一定数量的文件描述符,检测是否有文件描述符就绪。参数解析如下:fds为一个pollfd结构类型数组,用来指定用户感兴趣的文件描述符,并返回文件描述符上发生的可读、可写和异常事件 nfds指定被...
2018-05-08 19:20:34
174
原创 IO复用——select系统调用
1、select函数 此函数用于在一段时间内,监听用户感兴趣的文件描述符上的可读、可写和异常等事件。#include<sys/select.h>int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout)nfds参数指示被监听的文件描述符总数...
2018-05-06 23:31:04
164
原创 IO复用——epoll系列系统调用
1、内核事件表 epoll是Linux特有的I/O复用函数。epoll把用户关心的文件描述上的事件放在内核里的一个事件表中,并用一个额外的文件描述符来标识该内核事件表。这个额外文件描述符使用函数epoll_create函数来创建。#include<sys/epoll.h>int epoll_create(int size) size参数给内核提示事件表需要多大。该函数返回...
2018-05-06 19:29:05
160
原创 网络编程中常用函数1
1、atoi()函数#include<stdlib.h>int atoi(const char *str) 将字符串转化为整型数int val;char str[20]; strcpy(str, "98993489");val = atoi(str); //此时val就是整型数989934892、inet_addr()、inet_aton()、inet_ntoa()#...
2018-05-06 12:42:28
226
原创 class实现Stack
基于class实现一个存储string类型的Stack头文件://stack.h#include<vector>#include<string>class Stack{ public: bool push(const string &str); bool pop(string &str); bool peek(string &s...
2018-04-29 14:55:24
585
原创 STL——map和set
一、map1、map被定义为一对(pair即key和value)数值。 key值在map内最多只有一份。 假如需要对一篇文章中的单词计数,那么就可以建立一个map,string类型的key,int型的value,表示某个单词出现的次数。 #include<map> #include<string> map<string,int>...
2018-04-29 12:29:18
223
原创 STL——泛型编程
1、指针的算术运算 对于一个存储int数据的vector,我们要查找某值是否存在于其中,采用下标操作的做法如下: int* find(const vector<int> &vec, int value) { for(int i = 0; i < vec.size(); i++) { if(vec[i] == value) return &vec[i]...
2018-04-25 23:15:20
190
原创 STL——vector和list
vector和list为STL中的顺序容器,顺序容器会依次维护第一个到最后一个元素,在顺序容器上,我们主要的操作就是迭代。头文件: #include<vector> #include<list>1、vector特点: 连续存储结构 随机访问和尾端插入\删除操作效率高 动态的内存空间扩展(与内建数据的区别)内存分配原理: 首先分配一块内存空间进行预备存储,当存...
2018-04-25 23:11:08
132
转载 mysql命令大全
一、连接数据库格式:mysql -h主机地址 -u用户名 -p用户密码1.1.连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到M
2017-10-17 23:28:11
134
原创 java简单界面实现
import javax.swing.JFrame;import javax.swing.JPanel;public class DemoFrame extends JFrame{ public DemoFrame(DemoPanel panel) { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.se
2017-10-17 22:16:32
7970
原创 由火车进站引出的问题
1,2,3,4,5列火车进站出站,有哪些组合方式?对于进出站的方式与数据结构中的栈相同。如果有n 列火车通过调度站,请设计一个算法,输出所有可能的调度结果。 解题思路:栈具有先进后出、后进先出的特点,因此,任何一个调度结果应该是1 ,2 ,3 ,4全排列中的一个元素。由于进栈的顺序是由小到大的,所以出栈序列应该满足以下条件:对于序列中的任何一个数其后面所有比它小的数应该是倒序的。据此,本题可
2015-07-02 16:22:24
1197
转载 windows程序内部运行机制
Windows程序内部运行机制2007-10-21 19:52 1010人阅读 评论(0) 收藏 举报windowsvc++applicationcallbackwinapistructure Windows程序内部运行机制 先加个链接在这里:http://www.cwws.com.cn/dev/C__Builder/list_54_1.html中国站长上的关
2015-06-25 09:25:57
476
转载 常用库函数
C++常用库函数 1、常用数学函数 头文件 #include 或者 #include 函数原型功能返回值int abs(int x)求整数x的绝对值绝对值double acos(double x)计算arcos(x)的值计算结
2015-06-19 10:37:37
617
转载 sort函数
做项目的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。sort是STL中提供的算法,头文件为#include以及using namespace std; 函数原型如下:?
2015-06-18 21:00:17
726
转载 求最大公共字符串
LCS(Longest Common Subsequence) 就是求两个字符串最长公共子串的问题。比如: String str1 = new String("adbccadebbca"); String str2 = new String("edabccadece");str1与str2的公共子串就是bccade. 解法就是用一个矩阵来记录两个字符串中所
2015-06-13 12:24:56
346
转载 24点游戏算法
[cpp] view plaincopy#include #include #include #define LING 1E-6 #define CONT 4 #define VOLUE 24 float number[CONT]; char expression[CONT][
2015-06-10 21:57:53
605
转载 链栈的c++实现
2013-08-30 20:58 1876人阅读 评论(0) 收藏 举报 链栈是借用单链表实现的栈。其不同于顺序栈之处在于:1、链栈的空间是程序运行期间根据需要动态分配的,机器内存是它的上限。而顺序栈则是静态分配内存的。2、链栈动态分配内存的特性使得它一般无需考虑栈溢出的问题。 链栈的的组织结构如下图所示。容易发现其是架构的单链表的基础之
2015-06-10 14:48:23
477
转载 线性表练习题1
http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1324题目描述已知线性表 LA 和 LB 中的数据元素按值非递减有序排列,现要求将 LA 和 LB 归并为一个新的线性表 LC, 且 LC 中的数据元素仍然按值非递减有序排列。例如,设LA=(3,5,8,11) ,LB=(2,6,8,
2015-06-05 14:17:54
888
转载 realloc函数的用法
realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。如果将分配的内存减少,realloc仅仅是改变索引的信息。如果是将分配的内存扩大,则有以下情况:1)如果当前内存段后面有需要的内存空间,则直接扩展这段内存空间,realloc()将返回原指针。2)如果当前内存段后面的空闲字节不
2015-06-05 14:02:14
2513
1
转载 五大常用算法之二——动态规划
笔试面试中经常会出现一些考察动态规划方面的题目,以前没有接触过,现在初学做个整理。1. 什么是动态规划? 和分治法一样,动态规划(dynamicprogramming)是通过组合子问题而解决整个问题的解。 分治法是将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解。 动态规划适用于子问题不是独立的情况,也就是各子
2015-06-04 16:28:23
346
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人