8 flying_music

尚未进行身份认证

每个人都有一座回不去的城市。

等级
博文 57
排名 4w+

跨服务器拷贝文件(SCP命令的使用)

操作前提:①你已经登录了本地服务器;②你知道远程服务器IP地址(假定为192.168.0.2);③你在远程服务器有Linux用户(假设为root)1.本地文件-------> 远程服务器假定想把本地计算机/home下的一个名为a.tar.tz的文件拷贝到远程服务器的/home/tmp。可以用这个命令:scp/home/a.tar.tzroot@192.168.0...

2018-11-10 11:40:31

linux内核系列(2)——linux内核链表

因为高超的设计理念,linux内核中的链表被很多人津津乐道。实际上,链表本身只是内核提供的一组结构体、宏定义和函数的集合,与linux内核本身没有直接关系。内核链表的设计思路已经在另一篇博客中写了,有兴趣的同学可以去看一下,这里是链接。今天,我们来看一下真实内核链表的基本操作过程。我们的目标是做一个内核模块儿,在模块儿内使用内核提供的链表,完成构建节点,插入节点,排序节点,输出节点等一系列操作

2017-04-23 17:35:34

linux内核系列(1)——内核模块儿的编写

linux内核有一个很强大的功能就是可以动态加载模块儿,这里说的模块儿其实就是一个内核支持的小程序。在真正进入linux内核世界之前,我们可以先过一把瘾,自己加载运行一个内核模块儿。既然模块儿就是程序,我们就先来写一个小程序,这里还是拿最简单的“HelloWorld”程序来举例子。我们先上代码,然后再讲解。#include#include#includeMODULE_LIC

2017-04-23 09:54:18

C语言中指针与数组的区别与联系

好久不写东西了,从毕业以来,整个人都懒散了很多。今天终于鼓起勇气,来写一点儿东西……指针与数组对于C语言程序员来说肯定不会陌生,一说起这个话题,我就想起了曾经被内存、地址、地址里的内容这些概念狂虐时的情形。经过三年的学习,加上最近又看了一些这方面的书籍,现在自我感觉对这方面已经有了一个比较全面的理解,分享出来,和大家共勉。 1.指针与数组的爱恨情仇为什么这一块儿内容很绕呢?我想主要...

2017-02-03 17:29:50

程序优化的几个层次

计算机是人类发明的最强大的工具,而程序是人和计算机交流的工具,从我们遇到一个问题到cpu中进行的电位的运算,这个过程大致可以分为四个步骤:建模、编码、翻译、执行。这几个过程完成的质量关系到我们的问题是否能够解决,以及解决的速度和质量等。所以要想编写正确高效的程序,需要对这几个部分分别把控。实际上,现在我们已经有很多科学是在研究这些过程,目的就是能更好的完成它们。先来说一下建模,建模是解决问题的

2016-09-20 20:10:32

makefile书写入门

首先声明,本篇文章是根据陈皓博客中的相关文章改写的。原因是那篇文章太全面了,而本文抽取了其中比较实用的几点,以一个使用者的角度来说明一下,makefile改怎么写,而且只限定是linux下的C语言的makefile,其他概不讨论。如果你对原文感兴趣,这里是链接makefile简介makefile是一个工具,是帮助我们编译和链接程序的。我们都知道,C程序从源文件到一个可执行文件需要预处理、编

2016-07-29 16:54:06

TCP协议的连接机制---三次握手信号的原理

这篇文章是写给什么人看的?网络编程是现代计算机编程中不可缺少的一个环节,这里面的程序员主要分为两种类型:一种是专门搞网络编程的,估计是一些通信专业的童鞋,他们的任务是管理整个网络的通信;第二种是使用网络作为一个传输介质的的,最常见的就是使用socket编程的人,他们一般只是使用一些接口函数来完成通信任务。这两种人的关系就好比是修路人和走路人的关系,而这一篇文章是面向走路人的,更确切的说,就是帮

2016-07-28 09:54:21

回调函数初识

先从库函数说起吧,学过编程语言的人对函数库的概念应该都不陌生。C中的stdio.h,C++中的iostream,java中的java.util.*等等。这些库都是大师为了方便设计者使用语言而写的,我们在程序开发中无时无刻不在和这些库打交道。当然,我们还可以设计自己的库,将我们写好的

2016-07-27 16:53:10

信息的表示和处理

这是《深入理解计算机系统》(第二版)的第二章,原文大概有60页的篇幅,主要讲述各种类型的信息是如何在计算机系统中表示并处理的。这么多的内容,一篇博客是很难详尽的,所以本文就摘取了其中个人认为比较重要的部分,加上个人的一些理解讲给大家,希望可以给新人一些帮助,能起到一点儿抛砖引玉的作用。前言再次强调,计算机系统中的所有信息都是以二进制形式存储的,系统以二进制的记载形式表示着大千世界的所有信息

2016-07-27 10:39:08

计算机系统漫游

计算机系统由硬件系统和软件系统组成,它们共同协作来完成执行程序的任务。作为20世纪(世界上第一台计算机ENIAC与1946年诞生于美国的宾夕法尼亚大学)最伟大的发明之一,计算机系统可以说是人类迄今为止创造的最复杂最精密的工具。今天,借助计算机界的圣经教材《深入理解计算机系统》,我来带领大家探索一下计算机系统的秘密。1信息就是位+上下文计算机是信息学科的产物,其主要左右就是帮助人们处理

2016-07-18 15:43:35

试着从问题出发

“方法总比问题多”,相信大家对这句励志名言都不陌生,还有一些大师以此为题写成了著作。不过作为一个理科生,我对这种的心灵鸡汤是没有太多兴趣的。从理性的角度出发,现实生活中的“方法”和“问题”的数量都是无限,也就是存在无穷多个“方法”和无穷多个“问题”,所以并不存在谁比谁多的问题!不过我们倒是可以从中发现一个有趣的关系,即“问题”和“方法”的关系,我们这里指的方法是对应问题的方法,即问题的解决方法

2016-05-28 18:54:20

C++多态:从虚表指针到设计模式

多态是面向对象语言的一种高级特性。而又由于C++既面向底层又

2016-05-17 21:17:49

实现自己的字符串拷贝函数Strcpy

strcpy是C语言的库函数,用于完成字符串的拷贝,很多笔试面试过程中要求我们自己实现这个函数。字符串拷贝本身并没有太多技巧,可以利用最后的'\0'作为界限,用循环完成拷贝,代码如下char*Strcpy(char*strDst,constchar*strSrc){ //功能:实现字符串的拷贝 //说明:要求两字符串内存区域不可以有重叠 // 负责添加'\0' //

2016-05-13 08:39:15

数字与字符串之间的转换

C语言为我们提供了数字和字符串之间的转换函数,这些函数有很多,常用的有:整型数转字符串函数itoa():char*itoa(intvalue,char*string,intradix);//intvalue被转换的整数,char*string转换后储存的字符数组,intradix转换进制数,如2,8,10,16进制等浮点数转字符串函数gcvt():c

2016-05-12 11:09:30

排序算法初识

什么是排序从字面上理解,排序的过程就是把无序变成有序的过程。从应用来说,可以分三个层次理解:①整数排序,这是所有程序员刚接触排序算法时的直观感受,输入一些随机整数,然后将其排序后输出出来。②关键字排序,用过Excel排序的人对此应该不陌生,我们可以根据不同的关键字对数据记录进行排序,还可以有排序主字段和二级字段等概念。③按要求排序,这是广义上的排序方法,举个例子,我们在玩儿某些扑克

2016-04-27 11:36:35

#include与using的区别

这是一个C++里的老问题了,就像sizeof与strlen一样,困扰着很多初级程序员,所以估计看这篇文章的读者大都也是刚入门C++不久的新手,所以就不谈那些大道理了,而且那些文章已经不少了。本文将从一个个程序试验入手,让大家对问题有个比较充分感性认识。也希望大家不要手懒,有条件还是跟着一步一步做的好。毕竟学程序,敲代码的过程谁也替不了你。让我们先看一个简单的:(命名为main.cpp)

2016-04-17 20:37:31

链表的艺术——Linux内核链表分析

引言:链表是数据结构中的重要成员之一。由于其结构简单且动态插入、删除节点用时少的优点,链表在开发中的应用场景非常多,仅次于数组(越简单应用越广)。但是,正如其优点一样,链表的缺点也是显而易见的。这里当然不是指随机存取那些东西,而是由于链表的构造方法(在一个结构体中套入其同类型指针)使得链表本身的逻辑操作(如增加结点,删除结点,查询结点等),往往与其应用场景中的业务数据相互混杂。这导致我们每

2016-04-15 20:19:03

对三层架构的浅层理解

最近做项目一直被扩展性弄的焦头烂额,经常是加一个功能就要修改好多代码,直到最后代码一团乱麻再也不能维护了。所以决定花些时间学习一下传说中的三层架构,由于是刚刚接触,文章写得不是很上档次,只适合架构小白作为一个入门级别的东西。麻雀虽小,五脏俱全,我们先从为什么要三层架构谈起,然后介绍一下什么是三层架构,最好说明三层架构的设计要点。先说为什么。三层结构是一个上档次的名词,一般刚学程序的时候不会

2016-03-22 21:37:50

当程序设计遇到难题时

如果遇到的问题比较复杂而不能很快解决,那要做的第一点是让自己动起手来,千万不要守着问题发呆,一定记住,无论是做什么,一定要让自己跨出第一步,跨出第一步的方法有几个,今天来总结一下:1.举一个例子问题逻辑比较复杂抽象,那就用一个具体的例子来让它变得有血有肉。找一个小一点的例子,从头到尾把问题走一遍,对理清问题脉络、找到问题的难点、关键点是非常重要的。2.将思路写下来有时候我们既要理清

2016-03-14 09:38:48

提高C++程序执行效率的几点方法

首先要明确一点,C++的效率是C++的必要生命元素之一。C++是面向对象的,但同时也支持所有C的编程方法。这使得我们大部分C++程序在面向过程和面向对象之间徘徊,这也正是C++的优点之一,程序员可以决定多大程度上面向对象以提高开发速度并降低维护成本,同时他们还可以决定多大程度上面向过程以提高运行速度。当然,C++是无比繁杂的,这些大思想可以偶尔拿来装一下,一直讨论则是无益的,脚踏实地的学习知识点才

2016-02-23 10:19:53
奖章
    暂无奖章