上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 这一年以来,在寻找自己在技术方向上的兴趣点,尝试了不少领域,程序也写了不少,但却疏忽了算法和数据结构的练习。从今天开始,和大一的时候一样,每天都练一道算法或者数据结构的题。发篇博客,以表决心!!! 写于2012年12月22日 阅读全文
posted @ 2012-12-22 20:27 NeilHappy 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 进程即一个程序的动态执行。引用apue上的一句话:"A thorough understanding of the UNIX System's process control is essential for advanced programming".一.总述 1.进程的开始 在C语言中,进程是由一个main函数开始。 int main(int argc,char *argv[]) 我们可以向程序传入参数,以字符串数组的形式存储在argv,同时argc记录传入参数的个数。而且还可以在main的第三个参数中传入环境变量的数组,但一般不这样做。用全局environ更. 阅读全文
posted @ 2012-12-19 10:59 NeilHappy 阅读(1413) 评论(0) 推荐(1) 编辑
摘要: 原文地址:http://www.cnblogs.com/xianghang123/archive/2011/08/03/2125977.html【一】从第3000行开始,显示1000行。即显示3000~3999行cat filename | tail -n +3000 | head -n 1000【二】显示1000行到3000行cat filename| head -n3000| tail -n +1000*注意两种方法的顺序分解: tail -n 1000:显示最后1000行 tail -n +1000:从1000行开始显示,显示1000行以后的 head-n 1000:显示前面1000行【 阅读全文
posted @ 2012-12-11 12:55 NeilHappy 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 注:这里的"后知后觉"者,指的是像我一样的在大学之前没有接触过程序设计的人或者是在想要入职程序员而没有任何基础的人。一.学任何知识的先决条件 先不谈具体的学习方法,就学任何方面知识的先决条件来发表一些我自己的看法。 共三点,这3点的重要性不分先后。 第一点就是主动性。当然主动性需要建立在兴趣的基础上。主动学习与被动学习,两者的效果可以用天地之隔来形容。就好像主动去玩游戏与学习自己不喜欢的科目一样,两者的happy程度与效果也无法相提并论。追女生都要主动去追,更何况学习呢? 第二点就是自信。自信,从外在来说,决定了你走路的姿势,说话的音量与魄力,眼神是否专注,等等。我了解别. 阅读全文
posted @ 2012-12-10 09:06 NeilHappy 阅读(2437) 评论(22) 推荐(4) 编辑
摘要: 一.对linux的安全机制的一点感悟 各种权限,read,write,execute,set-user-ID,set-group-ID,sticky bit,对目录的权限,对文件的权限,用于保证系统安全的各种组合技,各种经典。比如,如果我们想unlink一个文件,就必须拥有该文件所在目录的write与execute的权限。二.两个小例子 1.当文件有hole时,cp命令会同时拷贝这些hole为'\0'。这里是一个实现了拷贝时跳过文件hole的程序。ps:我用的buffer是一个字节的,效率很低,但如果用大的buffer就会使得hole被移除,使得原先分开的字符被连上。我没想好如 阅读全文
posted @ 2012-12-09 09:07 NeilHappy 阅读(1198) 评论(0) 推荐(1) 编辑
摘要: 原文地址:未知。第一种方法:#i nclude <sys/time.h> int gettimeofday(struct timeval *tv,struct timezone *tz); strut timeval { long tv_sec; /* 秒数 */ long tv_usec; /* 微秒数 */ }; gettimeofday将时间保存在结构tv之中.tz一般我们使用NULL来代替。以下是程序:#i nclude <sys/time.h> #i nclude <stdio.h> #i nclude <math.h>void fun 阅读全文
posted @ 2012-12-08 11:33 NeilHappy 阅读(16956) 评论(0) 推荐(0) 编辑
摘要: 基本看完了《unix/linux编程实践教程》,实现了几个小项目,觉得很不过瘾,书中对很多system call的细节和原理都没讲。在尝试看linux内核分析的书时发现很多困难,所以拿起apue,继续打基础。读着读着,对apue上瘾了。这是题外话,就说这么多。一.我对文件I/O的理解 文件I/O最基本的两个函数就是read和write,书中也叫做unbuffered I/O。刚看到这个"unbuffered",我就奇怪,操作系统不是对所有的输入输出都会做缓存吗(delayed write),为什么还会存在unbuffered?但接着我就明白了,这里的ubuffered,是指 阅读全文
posted @ 2012-12-04 20:57 NeilHappy 阅读(1641) 评论(6) 推荐(1) 编辑
摘要: 这是apue的一个习题,要求不用fcntl来实现dup2.这是我的思路:循环调用dup复制file descriptor,直到与指定的相同。如果您有更高效的方法,请告诉小弟我,非常感谢! 代码如下:#include <apue.h>#include <unistd.h>#include <my_error.h>#include <fcntl.h>#define MAX 1000//function:neil_dup2int neil_dup2(int filedes,int filedes2){ if(filedes2==filedes) ret 阅读全文
posted @ 2012-12-02 11:25 NeilHappy 阅读(1636) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/volkswageos/article/details/6520973 时钟时间(墙上时钟时间wall clock time):就是一个进程从开始运行到结束运行后,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。 用户CPU时间:就是用户的进程获得了CPU资源以后,在用户态执行的时间。 系统CPU时间:用户进程获得了CPU资源以后,在内核态的执行时间。 进程的三种状态为阻塞、就绪、运行。 时钟时间 = 阻塞时间 + 就绪时间 +运行时间 用户CPU时间 = 运行状态下的用户空间时间 系统CPU时间 = 运行状态下系统空间的时间... 阅读全文
posted @ 2012-12-01 22:10 NeilHappy 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 源码的使用: 1.编辑apue.2e文件夹下的Make.defines.linux,修改WKDIR=/home/var/apue.2e为你的apue.2e目录。 2.修改apue.2e/std/linux.mk把全部的nawk改为awk. 3.编辑apue.2e/include/apue.h ,添加#define ARG_MAX 4096 4.打开apue.2e/threadctl/getenv3.c(还有getenv1.c),添加:#include "apue.h" 5.在你的apue.2e目录下:make 另外,在自己写程序添加apue.h和使用书中带的错误处理的函数时 阅读全文
posted @ 2012-11-30 13:35 NeilHappy 阅读(254) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页