自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

转载 linux内核链表详解

一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,

2013-08-27 20:56:33 960

原创 堆栈内存分配 及 函数返回值问题

1、堆栈变量的区别与使用可能许多人对内存分配上的"栈 stack"和"堆 heap"还不是很明白。包括一些科班出身的人也不明白这两个概念。我不想过多的说这两个东西。简单的来讲,stack上分配的内存系统自动释放,heap上分配的内存,系统不释放,哪怕程序退出,那一块内存还是在那里。stack一般是静态分配内存,heap上一般是动态分配内存。由malloc系统函数分配的内存就是从堆上分配内存

2013-08-21 23:41:18 4216

转载 linux应用层定时器的使用

使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一 个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实,还有一个方法,那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。首先

2013-08-21 15:13:51 1209

转载 信号安装函数sigaction与结构体struct sigaction

信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL

2013-08-21 14:37:07 1706

转载 va_list可变参数原理及vsprintf函数

一、va_list宏介绍va_list是一个宏,由va_start和va_end界定。    typedef char* va_list;  void va_start ( va_list ap, prev_param );  type va_arg ( va_list ap, type );  void va_end ( va_list ap );    其中,va_

2013-08-20 18:53:29 2732

转载 linux系统进程状态理解

为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行。      不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样的。包括一下三种:       运行态:进程占用CPU,并在CPU上运行;       就绪态:进程已经具备运行条件,但是CPU还没有分配过来;       阻塞态:进程因等待某件事发生而

2013-08-19 15:34:47 4293

转载 linux c程序中获取shell脚本输出

1. 前言  Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而我们可能需要

2013-08-19 14:33:57 801

转载 linux套接字编程

套接字编程的各级要素:`主机接口:网络地址ip`协议:特定的协议(TCP & UDP)`端口:client或server的进程终点套接字简单的说,套接字就是两个应用程序之间通信管道的终点,这个管道可以唯一的标志一条链接,而应用程序则通过套接字来操作这个管道通信。通信过程要想使不同主机的进程通信,就必须使用套接字,套接字是用socket()函数创建,如果需要C/S

2013-08-18 14:41:41 6546

转载 管道技巧-while read line

在Bash Shell中,管道的最后一个命令都是在子Shell中执行的。这意味着在子Shell中赋值的变量对父Shell是无效的。所以当我们将管道输出传送到一个循环结构,填入随后将要使用的变量,那么就会产生很多问题。一旦循环完成,其所依赖的变量就不存在了。      /> cat > test8_1.sh      #!/bin/sh      #1. 先将ls -l命令的结果通过管道

2013-08-16 11:00:05 21396 2

转载 shell中read参数

1、基本读取read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令的最简单形式::#!/bin/bashecho -n "Enter your name:" //参数-n的作用是不换行,echo默认是换行read name //从键盘输入echo "hello $name,welcom

2013-08-15 00:14:35 1503

转载 fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

字符串读写函数fgets和fputs一、读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志”。例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入 字符数组str中。

2013-08-14 10:24:18 2091

转载 Linux ruid、euid和suid区别

看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。下面分别用RUID, EUID,SUID来表示实际用户ID,有效用户ID,设置用户ID。另外用户ID是个整型数,为了说明方便真接使用了用户名来代表不同的UID。先解释一下这几个ID的作用:RUID,

2013-08-14 00:00:26 2170

原创 samba服务器配置及window网络磁盘映射

1、smb.conf文件配置Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,该文件中记录着大量的规则和共享信息,samba服务器的搭建大部分是对该文件进行操作。    Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果

2013-08-05 00:32:03 27017

iptables使用手册

手册中对linux防火墙工具iptables的使用进行了详细的讲解,非常适合正在研究这款工具的人,尤其对表、链、规则进行了细致的罗列,通俗易懂!

2013-01-13

计算机经典书籍汇总

这份文档对计算机领域涉及到的经典书籍进行了细致的罗列,对计算机学习感兴趣的人有很大的帮助,尤其是酷爱编程的人,里面推荐的书籍堪称经典。

2012-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除