Read 系统调用在用户空间中的处理过程 Linux 系统调用(SCI,system call interface)的实现机制实际上是一个多路汇聚以及分解的过程,该汇聚点就是 0x80 中断这个入口点(X86 系统结构)。也就是说,所有系统调用都从用户空间中汇聚到 0x80 中断点,同时保...
一、 链表数据结构简介 链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的...
一、 引言 在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问...
六、大内核锁(BKL--Big Kernel Lock) 大内核锁本质上也是自旋锁,但是它又不同于自旋锁,自旋锁是不可以递归获得锁的,因为那样会导致死锁。但大内核锁可以递归获得锁。大内核锁用于保护整个内核,而自旋锁用于保护非常特定的某一共享资源。进程保持大内核...
大家都知道, 在所有的上班族当中,软件工程师是一群最有特点,智商最高,最自命不凡的人。我非常确信这一点因为我就要嫁给这样一个人了。但是,为了让这群自命不凡的人能拜倒在自己的石榴裙下,你不必像我一样把一生的幸福搭进去。我这里有11个非常巧妙的技...
在过去的几个月里,我一直在学习用Objective-C编写iOS app,最后我开始理清思绪。这比我想象中要难很多,也花了太长时间。 我经常遇到困难、感到沮丧,修复bug比实际写代码要花太多时间。但是,在我的手机上把玩我从头开发的app有一种让人惊奇的感觉。 用这...
1.数组定义 1.1.可以整体定义数组: ARRAY_NAME=(value0 value1 value2 value3 ...) 1.2.或者这样: ARRAY_NAME=( value0 value1 value2 value3 ... ) 此时数组的下标默认是从0开始的 1.3.还可以单独定义数组的各个分量: ARRAY_NAME[0]=value0 ARRAY_NAME[1...
1.writeLog.sh for i in $(seq 1 10000) do d=$(date +%Y%m%d%H%M) echo $d--------$i/home/test/test.txt done...
如果你是一个 程序员 , 或者你就读计算机相关专业, 那么你应该能理解下面这些诡异的小习惯是怎么养成的, 或者你本身就有着其中的某些习惯: 0. 程序员 数数会从0开始数起. 例: 程序员 吵 架的时候会说: 我数三下, 你再不闭嘴我就不客气了! 零! 一! 二! 或者列...
英文原文: 7 Programmer Recruiting Mistakes 你知道为什么有些滥竽充数鱼目混珠的家伙仍然被雇佣吗?要知道他们不擅长编译,也写不出高质量的代码。为此,我总结了在招聘程序员时常犯的 7 个错误。 关于注重工作年限。 相信应聘人员对自我技能的评价。 没...
本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 在以前一些关于代码注释的文章中,我发现,你不需要的注释才是最好的注释。不要急着批判,请允许我阐述一下。首先代码应该尽量地简洁,尽可能地做到不需要依赖注释就可以理解。只有那些真的没法...
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率。小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会。 注释 Ctrl+/ 能为光标所在行或者选中行添加注释或者取消注释。...
我研究过数百个因拷贝-粘贴导致的错误。可以肯定的是,程序员常常会在一大段代码的最后一段里犯错。好像还没有任何编程书讨论过这种现象,因此我决定自己写点什么。我称之为末行效应。 我叫Andrey Karpov,我的工作有点不寻常:我借助静态分析工具研究各种应...
发现一款很有意思的程序,安装并启动服务后就可以使用浏览器通过ssh方式连接服务器。如果你安装git命令则可以使用git命令down程序 1 [root@lee ~]# git clone https://github.com/aluzzardi/wssh.git 下载后,直接进入目录安装 1 2 [root@lee ~]# cd wssh [r...
一、头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH ※再找内定目录 /usr/include /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.2/include /usr/lib/gcc-...
我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。 在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,...
一个好的软件开发人员需要培养两种技能:技术技能和非技术技能。不幸的是一些开发者只注重技术的部分,以致养成一些陋习,下面是最常犯的5个非技术性错误: 1. 缺乏自律 Jim Rohn曾经说过:自律是目标和成果之间的桥梁。我一直认为,不论是成为一名软件开发...
他没有提到任何人的名字,但是这像一次道歉 Linus Torvalds在前几天的欧洲LinuxCon和CloudOpen大会上做了讲话,这次大会由Linux基金会组织并且汇聚了开源世界的所有大佬。他回答了很多问题,也谈到了他在邮件发送清单里使用粗话的事情。 Linus Torvalds被认...
你听说过SEMA么? 它是一个用来测试一个软件团队有多好的相当深奥的系统。不,等等!不要手贱点开这个链接!它会花费你大概六年的时间来了解这个东西。所以我提出了我自己 的、跟它相比极不负责任的、草率的评价一个软件团队的质量的测试。这个测试最棒的方...
你听说过SEMA么? 它是一个用来测试一个软件团队有多好的相当深奥的系统。不,等等!不要手贱点开这个链接!它会花费你大概六年的时间来了解这个东西。所以我提出了我自己 的、跟它相比极不负责任的、草率的评价一个软件团队的质量的测试。这个测试最棒的方...
现在非常多的人都想涉足开源的,但不知道从什么地方入手。这里有几种方法可以帮帮忙,即使你缺乏信心,你但仍然能够让你挑起技术大梁。 开源软件改变了计算乃至整个世界,也许你也想为这样一件事做出贡献。但不幸的是,很多人认为参与这样的项目具有很高的门...
1 2 3 4 5 6 7 grep -q str urfile { echo 找到了 }|| { echo 没找到 }...
我最近在写一些执行备份工作的脚本,我决定使用systemd timers而不是对我而已更熟悉的cron jobs来管理它们。 在我使用时,出现了很多问题需要我去各个地方找资料,这个过程非常麻烦。因此,我想要把我目前所做的记录下来,方便自己的记忆,也方便读者不必像...
摘要:本文主要讲述了Linux系统中,程序存储结构(代码区、数据段和BBS区)与进程的基本结构(代码区、数据段、BBS区、堆和栈),以及堆和栈的区别. Linux程序存储结构与进程结构 1.Linux程序存储结构 在Linux系统下,程序是一个普通的可执行文件,图1是一个...
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1.下载代码: http://www.apuebook.com/code3e.html 2. 安装依赖库: sudo apt-get install libbsd-dev 3. 进入 下载目录make 4. 复制 头文件和动态链接...
自动动手写发包工具 为了测试服务器大量在线的性能,需要自己写机器人,模拟大量客户端在线的情况。第一步是创建帐号,第一个办法是直接在服务器后台用脚本创建帐号,另一个办法是模拟客户端发包。前者需要登录到服务器执行,后者可以在其他机器上执行,于是...
英文原文: Fixing a Bug is Like Catching a Fish boss:那么,你需要多长时间来修复这个 bug? 没有经验的程序员:给我一个小时?最多两个小时?我能马上搞定它! 有经验的程序员:这么说吧,钓到一条鱼要多久我就要多久?! 要多少时间才能修复 bug,事先...
下面是stackoverflow网站上网友针对你看到过的最好的代码注释是什么样的? 这个问题给出的回答的前10条: // 亲爱的维护者: // 如果你尝试了对这段程序进行优化, // 并认识到这种企图是大错特错,请增加 // 下面这个计数器的个数,用来对后来人进行警告:...