- 博客(19)
- 收藏
- 关注
原创 python带有访问计数的列表
希望实现一个和内建列表行为相似的序列。#!usr/bin/env python#coding:utf-8class CouterList(list): def __init__(self, *args): super(CouterList,self).__init__(*args) self.count = 0 def __getitem__(sel
2017-08-14 11:14:00
386
原创 Shell脚本学习——符号
Shell的历史Shell的作用是解释执行用户的命令。 交互式(Interactive):用户输入一条,Shell就解释一条。 批处理(Batch):用户实现写一个Shell脚本,其中有很多条命令,Shell一次性把这些命令执行完,不必一条一条的敲。UNIX系统上有很多种Shell:sh(Bourne Shell):由 Steve Bourne开发,各种UNIX系统配置都有sh。csh(C
2017-03-01 21:03:03
471
原创 5种IO模型
进行I/O操作的时候,分为两个步骤:准备数据数据搬迁Unix下共有5种I/O模型:阻塞I/O非阻塞I/OI/O复用(select & (e)poll)信号驱动I/O(SIGIO)异步I/O(Posix.1 的aio_系列函数)前四种属于同步I/O,最后一种属于“异步I/O”。 区别: - 异步I/O:操作完成后才会通知用户程序。 - 同步I/O:最后都要自己进行数据搬迁。
2017-02-28 12:02:26
404
原创 Centos6.5下彻底删除MYSQL
以前在centos6.5下安装了MYSQL,由于忘了root密码,又没有什么重要文件,就想到了卸载MYSQL。以下是卸载MYSQL的步骤:yum remove mysql mysql-server mysql-libs mysql-serverfind / -name mysql (找到的相关东西 rm 掉)rpm -qa|grep mysql (查询到的东西yum remove 掉)这样就
2017-02-22 14:06:47
3167
原创 线程的分离、同步
有关线程分离->在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached)。 ->一个可结合的线程能够被其他线程回收其资源和杀死。在被其他线程回收之前,它的存储器资源(栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或者杀死的,它的存储器资源在它终止时由系统自动释放 ->默认情况下,线程被创建程可结合的。为了避免存储器泄露,每个可结合线程,要么不饿显示的回收,
2017-02-19 20:38:29
1288
原创 线程创建、等待、终止
线程概念 main函数和信号处理函数是 同一个进程地址空间中的多个控制流程,多线程一样。 信号处理函数的控制流程只是在信号抵达时产生,在处理完信号后就结束了;多线程的控制流程可以长期并存,操作系统会在各线程之间调度和切换,像在多个进程之间相互切换一样。 同一进程的多个线程共享同一进程地址空间,所以 代码段、数据段都是共享的,eg:定义一个函数,在各线程中都可以调用;定义一个
2016-10-29 21:47:26
351
原创 找出整数数组中第二大数
题目描述: 给一整数数组,写代码找出数组中第二大数#include <iostream>using namespace std;int sort(int *a, int size){ int i; int first = a[0]; int second = a[0]; for (i = 1; i < size; i++) {
2016-10-29 17:22:54
367
原创 进程间通信——IPC(InterProcess Communication)
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程间要交换数据必须经过内核,在内核开辟一段缓冲区,进程1把数据拷到内核缓冲区,进程2 从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 管道(pipe) 管道是最基本的IPC机制,由pipe函数创建:#include<u
2016-10-27 17:47:43
338
原创 C++ 强制类型转换(4种)
C++强制类型转换 static_castconst_castreinterpret_castdynamic_caststatic_cast - static_cast用于非多态类型的转换(静态转换),任何标准转换都可以用,但是不能用于两个不相关类型的转换void Test1(){ int i = 1; float d = static_cast< fl
2016-10-23 17:00:26
717
原创 C++异常的理解
错误处理技术 1.终止程序(段错误) 2.返回错误码 3.返回合法值 4.调用一个预先设置的出现错误时调的函数(回调函数)异常处理 -当一个函数发现自己无法处理的错误时抛出异常,让函数的调用者直接或间接的处理这个问题。异常的抛出和捕获 - 异常是通过抛出对象而引发的,对象的类型决定了应该激活哪个处理代码。 - 处理代码是与该对象类型匹配且离抛出异常位置最近的
2016-10-23 14:37:45
316
原创 打印素数
在屏幕上打印出1-100之间的素数 以下是代码:#include <stdio.h>int main(){ int i,j; for(i=2;i<=100;i++) { int t=1; //判断是否打印值。 for(j=2;j<i;j++) { if(i
2016-10-16 22:35:57
353
1
原创 strcpy 函数实现
原型:extern char * strcpy(char* dest,const char* src); 头文件:#include <stdio.h> && #include <string.h> 功能:把从src地址开始的且含有NULL结束字符的字符串复制到以dest开 始的地址空间 PS:dest 和 src所指的区域不能重合,dest必须有足够的空间来容纳src。
2016-10-09 11:22:45
249
原创 atoi 函数
编写一个函数,将数字字符转换为整型.int ascii_to_integer(char* str);这个字符串必须包含一个或多个数字,函数把数字字符转换为整数数字并且返回整数。技巧:每个数字把当前值*10 并且和新数字所代表的值相加。函数实现如下:#include #include #include int my_atoi(char *str){ int fl
2016-10-09 10:25:31
253
原创 linux gdb基本命令
在编译时要加上 -g 选项,生成的可执行文件才能用 gdb 调试(源码级)。backtrace(bt):查看各级函数调用及参数。finish:运行到当前函数返回为止,停下来等待命令。frame(f)帧编号:选择栈帧。info(i)locals:查看当前栈帧局部变量的值。list(l):列出源代码,按上次的位置往下,一次10列。list 行号:从第几行开始列。list 函数名 :列出某个
2016-10-06 11:47:39
340
原创 linux操作系统之进程概念
*操作系统:计算机系统包含的一个基本的程序集合。内核(进程管理、进程调度、进程间通讯机制、内存管理、中断异常处理、文件系统、I/O系统、网络部分)其他程序(函数库、shell程序) *操作系统的目的与硬件交互,管理所有的硬件资源为用户程序即应用程序提供良好的运行环境。进程 ^系统方面:程序的一个执行实例正在执行的程序能分配处理器并由处理器执行的实体^内核方面:担当分配系统资源
2016-09-26 23:18:00
563
原创 C++默认成员函数
类和对象隐含的this指针 1. 每个成员函数都有一个指针形参,即this指针。(构造函数没有隐含的this指针形参)。 2. 编译器会对成员函数进行处理。对象调用时,对象地址作实参传递给成员函数的第一个形参 this 指针。 3. this 指针是成员函数 隐含的指针形参编译器处理的,我们不能随意添加,也不能在调用时显示的传递对象的地址 给this指针。构造函数 对私有的
2016-09-24 15:07:08
237
原创 堆
堆堆数据结构是一种数组对象,他也可以被视为是一棵完全二叉树。堆数据结构的二叉树存储结构如下: 堆的特点: 最大堆:每个父节点都大于他的孩子节点。 最小堆:每个父节点都小于他的孩子节点。以下是自己写的堆代码(以小堆为例):#pragma once#include <vtor>#include <assert.h>using namespace std;//仿
2016-09-13 16:39:17
170
原创 Linux下 进度条
最近实现了进度条,记录一下。1. 建立工作目录 test,并进入2. 建立proccess.h 实现代码如下:#ifndef _PROCCESS_#define _PROCCESS_#include #include #include #define _SIZE_ 103void process();#endif // !_PROCCESS_3.
2016-04-18 21:41:43
194
原创 c语言 冒泡排序
冒泡排序:是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把 他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。代码如下: #include int main(){ int i, j; int a[10]; int len = (int)sizeof(a) / sizeof(a[0]); in
2015-05-08 17:10:18
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人