![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2015年6月
u010154760
这个作者很懒,什么都没留下…
展开
-
bash脚本输入密码不回显
编写一个bash脚本时,需要用户输入一个密码,方可继续后续流程,但是又要保证用户输入的密码不会被别人看到,因此排除了通过参数将密码传入脚本的方案。不绕圈子,揭晓答案:设置终端状态为“字符不回显”(如果你了解过termios的话,也一定听说过)方法就是:stty -echo #设置输入字符不回显#此处用read语句接收用户输入的内容stty echo #取消不转载 2015-06-17 16:31:59 · 926 阅读 · 0 评论 -
学习rpmbuild总结
一. rpmbuild介绍顾名思义创建rpm包,它是用来指示转换的源码不定编译成二进制文件的包,在centos下默认目录为/usr/src/redhat二.目录/usr/src/redhat--BUILD #编译之前,如解压包后存放的路径--BUILDROOT #编译后存放的路径--RPMS #打包完成后rpm包存放的路径--SOURCES #源包所放置的路径--S转载 2015-06-04 14:35:47 · 497 阅读 · 0 评论 -
Linux 快速清屏快捷键
以前我们经常使用 clear,或者 reset 甚至使用系统别名如:[root@localhost ~]$ alias cls='clear'[root@localhost ~]$ cls来清理屏幕有没有其他快捷方式呢?Yes!!!那就是:Ctrl+L附:当我们使用vi/vim编辑文件时,如果发现屏幕显示有些混乱,也可以按Ctrl+L来使屏幕转载 2015-06-25 09:57:22 · 17780 阅读 · 0 评论 -
git学习
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000http://blog.lxx1.com/426转载 2015-06-04 22:28:11 · 316 阅读 · 0 评论 -
Linux进程控制——exec函数族
1、简介在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是:#include extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int e转载 2015-06-09 09:54:11 · 409 阅读 · 0 评论 -
C程序调用shell脚本共有三种方法
C程序调用shell脚本共有三种法子 :system()、popen()、exec系列函数call_exec1.c ,内容为:system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令popen() 也可以实现执行你的命令,比system 开销小1)system(shell命令或shell脚本路径);转载 2015-06-09 09:53:41 · 479 阅读 · 0 评论 -
网络IO之阻塞、非阻塞、同步、异步总结
1、前言 在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。网上有详细的分析:http://blog.csdn.net/historyasamirror/article/details/5778378。我结合网上博客和书总结一下,加以区别,加深理解。转载 2015-06-09 22:13:21 · 427 阅读 · 0 评论 -
带外数据OOB与紧急模式URG
A,TCP支持带外数据OOB吗?与紧急模式URG有什么关系? TCP支持带外数据,但是只有一个OOB字节,TCP的带外数据是通过紧急模式URG实现的.B,我们知道send(sendfd,"ABC",3,MSG_OOB),将发送3个字节的带外数据OOB数据.但是这里TCP又只支持一个字节的OOB,难道丢掉2个字节? TCP将把紧急模式URG 置位,紧急指针定位第三个字节(转载 2015-06-09 21:54:32 · 586 阅读 · 0 评论 -
算法时间复杂度的计算
求解算法的时间复杂度的具体步骤:⑴ 找出算法中的基本语句;算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。⑵ 计算基本语句的执行次数的数量级;只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。⑶ 用大Ο记号表示算法转载 2015-06-10 13:58:29 · 885 阅读 · 0 评论 -
什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么转载 2015-06-10 14:02:33 · 379 阅读 · 0 评论 -
【动态分配栈内存】之alloca内幕
哎,下班回家就开始大扫除,一直到凌晨才搞定,真的累了。但是计划的是今天必须将本文写完,不写完睡不着觉。那就尽快切入正题吧! 我们经常使用malloc或者new等函数或操作符来动态分配内存,这里的内存说的是堆内存,并且需要程序员手工释放分配的内存。malloc对应free,new对应delete。至于你要混着用,也不是不可以,只要确保逻辑和功能的正确性,还要在规范的限制范围内。转载 2015-06-18 22:29:04 · 768 阅读 · 0 评论 -
数据段和只读数据段
3.3.2 数据段和只读数据段.data段保存的是那些已经初始化了的全局静态变量和局部静态变量。前面的SimpleSection.c代码里面一共有两个这样的变量,分别是global_init_varabal与static_var。这两个变量每个4个字节,一共刚好8个字节,所以".data"这个段的大小为8个字节。SimpleSection.c里面我们在调用"printf"的时候,转载 2015-06-18 20:54:31 · 4928 阅读 · 0 评论 -
关于函数strtok和strtok_r的使用要点和实现原理(一)
strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要的,winxp+vc6.0,一个极端平民化的实验环境。本文中使用的源代码大部分来自于网络,我稍加修改作为例证。当然,本人水平有限,有不妥之处在所难免,各位见谅的同时不妨多做实验,以实验为证。strtok的函数原型转载 2015-06-16 19:38:25 · 455 阅读 · 0 评论 -
在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。守护进程是在后台运行不与任何控制终端关联,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于
在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。守护进程是在后台运行不与任何控制终端关联,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。大多数服务都是通过守护进程实现的。它从被执行开始运转,直到整个系统关闭时才退出。如果想让某个进程不因为用户或终端或其他地变化而受到影响,那么就转载 2015-06-18 13:01:29 · 646 阅读 · 0 评论 -
关于const char*和char*、const char** 和char** 赋值问题
根据ANSI C标准的赋值约束条件: 1. 两个操作数都是指向有限定符或无限定符的相容类型的指针。 2. 左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。一、const char*和char* const char*的类型是:“指向一个具有const限定符的char类型的指针”。(不能修改其值) char*的类型是:“指向一个char类型的指转载 2015-06-18 13:11:43 · 4030 阅读 · 0 评论 -
全局/静态变量初始化为0放在bss段还是data段
2013-6-4上午去面试,被鄙视了,技术公司大牛的风范,好犀利!不过我这题应该是蒙对了。。 如:static unsigned char s_test = 0;这个静态变量是放到bss段还是data段呢,以下是我编译的结果:(全局变量也是如此) 1.看这样子,即使是初始化了,但是初始化的是0,还是放在bss段的2.这里还有一个问题,即使是全转载 2015-06-18 20:46:42 · 12699 阅读 · 1 评论 -
内存的静态分配和动态分配的区别
内存的静态分配和动态分配的区别主要是两个: 一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。 二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数alloca进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需转载 2015-06-18 22:27:45 · 829 阅读 · 0 评论 -
回显
http://baike.baidu.com/view/2749682.htmhttp://book.51cto.com/art/200908/146380.htmhttp://zhidao.baidu.com/link?url=WoFSLtyxhiGHGVnn5vooIsPsvaEOKUf5RskiQu6QvRrQ32hw1qOG7CtWBni-JsChjGt3QfiqhOqcz19y1转载 2015-06-18 12:56:32 · 443 阅读 · 0 评论 -
linux shell 自定义函数(定义、返回值、变量作用域)介绍
linux shell 自定义函数(定义、返回值、变量作用域)介绍linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。 一、定义shell函数(define function)语法:[ function ] funname [()]{ action; [return i转载 2015-06-18 13:10:09 · 473 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释转载 2015-06-18 22:22:20 · 404 阅读 · 0 评论 -
Linux中的段管理,bss段,data段
Linux 的段管理,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。该段用于存储未初始化的全局变量或者是默认初始化为0的全局变量,data段 该段用于存储初始化的全局变量,初始化为0的全局变量出于编译优化的策略还是被保存在BSS段,数据段也转载 2015-06-18 20:59:35 · 1035 阅读 · 0 评论 -
[转]tcp收发需要缓冲区,udp不需要缓冲区
(一)基础知识 IPv4 数据报最大大小是65535(16位),包括IPv4头部。IPv6 数据报最大大小是65575,包括40个字节的IPv4头部MTU,这是由硬件规定的,如以太网的MTU是1500字节,IPv4要求最小MTU是68字节,IPv6要求最小MTU是576字节path MTU: 指两台主机间的路径上最小MTU分片(fragmentation):指ip数据报大小超过相应转载 2015-06-09 22:10:36 · 500 阅读 · 0 评论