volcanol的工控博客
Email : lilinly225@126.com 索要资料加QQ 点击进入 或 点击左侧的资料分享专用帖

volcanol ---- View OF Linux Can Appreciate Nature OF Linux

天行健,君子以自强不息

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年12月15日

摘要: 一、应用程序多线程 当一个计算机上具有多个CPU核心的时候,每个CPU核心都可以执行代码,此时如果使用单线程,那么这个线程只能在一个CPU上运行,那么其他的CPU核心就处于空闲状态,浪费了系统资源;引入多线程可以解决这个问题,可以充分利用系统CPU的资源; 例如可以:线程2在CPU核心0上运行、线程2在CPU核心2上运行。 又或者,当应用程序需要做一件查找很费时的操作,如果使用单线程,那么应用程序在处理这个“费时操作”的时候,就不能进行其他的操作,使用户等待操作处理过程,影响应用程序的实时性;利用多线程可以解决这个问题,应用程序可以让费时操作在一个线程中执行,而其他线程还可以处理其他任务,.. 阅读全文
posted @ 2013-12-15 14:16 volcanol 阅读(1144) 评论(1) 推荐(1) 编辑

2013年12月13日

摘要: 一、进程间通信 linux下面提供了多种进程间通信的方法, 管道、信号、信号量、消息队列、共享内存、套接字等。下面我们分别介绍管道、信号量、消息队列、共享内存。 信号和套接字在后续介绍。1、管道 管道又分为无名管道、命名管道。 无名管道用于父子进程间通信, 而命名管道则可以用于同一计算机上运行的两个进程间的通信。管道可以用类似“水管”的原理来理解。1)无名管道 要在父子进程进程间使用管道进行通信,那么先需要创建管道, 在linux中使用 pipe()创建管道。其原型如下:PIPE(2) Linux Programmer’s Manual ... 阅读全文
posted @ 2013-12-13 18:02 volcanol 阅读(1658) 评论(0) 推荐(0) 编辑

摘要: 一、 环境变量 应用程序在执行的时候,可能需要获取系统的环境变量,从而执行一些相应的操作。 在linux中有两种方法获取环境变量,分述如下。1、通过main函数的参数获取环境变量 main函数的多种定义方式: int main(void); int main(int argc, char* argv[ ]); int main(int argc, char* argv[ ], char* env[ ] )View Code方式1和方式2比较常见,下面介绍一下方式3: 第三个参数获取系统的环境变量。Exp:#include int main(int argc,ch... 阅读全文
posted @ 2013-12-13 10:07 volcanol 阅读(2366) 评论(1) 推荐(2) 编辑

2013年12月12日

摘要: 最近学习linux系统下的应用编程,参考书籍是那本称为神书的《Unix环境高级编程》,个人感觉神书不是写给草鞋看的,而是写给大神看的,如果没有一定的基础那么看这本书可能会感到有些头重脚轻的感觉。我自己就是这样,比方说看进程间通信信号量章节的时候,开始感觉就很迷糊,因此也就想在这里写一些文字,给和我一样的草鞋分享一些自己的学习经历(算不上经验吧)。 环境: windows7, VMware 9.0 操作系统版本: RHEL 5.5 内核版本:2.6.18-194.el5 Gcc版本: gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-48) 【20... 阅读全文
posted @ 2013-12-12 18:11 volcanol 阅读(1558) 评论(4) 推荐(1) 编辑

2013年11月23日

摘要: 有段时间没有来园子了,今天从 www.kernel.org 上面下载了一个 2.6.32.2 内核压缩包,下载下来后发现是一个 .xz 结尾的文件,一看与通常的 .gz、.bz2等格式不一样,感觉可能利用系统现有的压缩和解压缩工具可能不能解压,测试后果然不能通过gzip、bzip呼和bzip2等工具解压。 就在Internet上捞了一下,知道整个这个格式是 LZMA 格式的压缩文件,就是说是利用LZMA压缩算法生成的,而前面的压缩和解压缩工具不支持这个算法。于是就又捞了一把,说是可以用7zip工具来解压,也可以用 XZ Utils工具进行解压。 于是就逛了一圈 XZ Utils的官网:h... 阅读全文
posted @ 2013-11-23 16:55 volcanol 阅读(5828) 评论(0) 推荐(1) 编辑

2013年10月8日

摘要: 最近学习要用到求绝对值函数,看了一下有很多种的abs函数,因此想自己实现这些代码。下面是我进行测试的代码:#include typedef unsigned int U32,u32;typedef enum {FALSE,TRUE} BOOL;//求绝对值函数float fabsf(float x) { //这里可以看到浮点数和整数在计算机中的表达方式不一样 //下面的这种方法,不能用于整数 U32* p; p=(U32 *)&x; *p=*p & 0x7FFFFFFF; return x;}int abs(int x) { //负数的补码=反码+... 阅读全文
posted @ 2013-10-08 13:55 volcanol 阅读(912) 评论(1) 推荐(0) 编辑

2013年10月5日

摘要: 【1】main.c/****************************************************** 把整数按照进制数转换为相应进制的字符串*(要考虑符号),比如 -1234,转换为 “-1234”。* *****************************************************/#include #include #define BUF_LEN 12//将数字转换成十进制子函数void iToDecCh(int iNum,char *p);//字符串倒置函数void strReverse(char* str);/* ... 阅读全文
posted @ 2013-10-05 19:09 volcanol 阅读(1549) 评论(2) 推荐(0) 编辑

2013年9月29日

摘要: /**///******************************************************0/*函数功能: 判断字符串subString是否是字符串String从首字符开始的子串函数原型: BOOL SubStringMatchHead(char* String,char* subString)函数参数: char* String:字符串 char* subString:子字符串返回值: 如果是,则返回TRUE,否则返回FALSE异常: 无*/BOOL SubStringMatchHead(char* String,char*... 阅读全文
posted @ 2013-09-29 13:36 volcanol 阅读(397) 评论(0) 推荐(0) 编辑

2013年6月29日

摘要: 前面我们了解了部分linux shell的相关特性,下面的链接是第4篇文章:linux_shell_4_shell特性 这里我们来继续讨论linux shell中至关重要的一个特性: 正则表达式 (regular expression)。 正则表达式主要是用来处理字符流的,它的处理单位是行字符文本,也就是说正则表达式的处理对象是: 字符行。【1】单字符通配 在bash中,我么可以使用 ? 来匹配单个字符,但是在正则表达式中,? 不能用作单个字符的通配。这一点需要引起注意。在正则表达式中利用:[a-z] #匹配lowcase char[A-Z] #匹配upcase ... 阅读全文
posted @ 2013-06-29 10:52 volcanol 阅读(627) 评论(0) 推荐(0) 编辑

2013年6月26日

摘要: 去年的这个时候,我曾经写过一些关于shell特性的文章,下面是第3篇:linux_shell_3_shell变量特性。 今天我们继续来学习一些关于Linux shell的内容。【1】shell 在用户登录到系统后,系统会给用户分配一个默认的shell,用户通过这个shell来与系统进行交互。我们可以通过环境变量SHELL来查看用户登录到系统后获取的shell。如下命令所示:[volcanol@volcanol ~]$ echo $SHELL/bin/bash 这里我的系统登录后分配的shell为bash shell。 一般的linux或者类unix系统都会提供多个shel... 阅读全文
posted @ 2013-06-26 22:58 volcanol 阅读(1850) 评论(0) 推荐(0) 编辑

2013年6月25日

摘要: 在前面一篇文章中,我们讨论了在Linux Fedora 14下安装WMV解码器:【Linux_Fedora_应用系列】_3_如何利用Smplayer播放WMV格式的文件在文章中介绍的方法同样适合FC 14以后的版本。今天我们来介绍如何在Fedora 14中安装Chrome浏览器。【1】、rpm安装 首先到下面的链接下载rpm包:http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html 通常这个链接的软件包: https://www.google.com/intl/en/chrome/browser/?hl=en&brand=C 阅读全文
posted @ 2013-06-25 22:46 volcanol 阅读(2835) 评论(0) 推荐(0) 编辑

2013年6月24日

摘要: 各位朋友,如果您觉得下载的电子书,看的还可以,请购买纸质版的图书,如果您觉得您下载的书,不值得一看请在下载后直接删除。Windows汇编:http://dl.vmall.com/c0jk1v970a计算机_Thunderbird.pdf:http://dl.vmall.com/c0law8h3tz计算机_C语言核心技术_中文版.pdf:http://dl.vmall.com/c0ntj98jx6计算机_C语言程序设计_现代方法_中.pdf:http://dl.vmall.com/c0a3s9jvtp计算机_C语言程序设计_现代方法_下.pdf http://dl.vmall.com/c0... 阅读全文
posted @ 2013-06-24 20:30 volcanol 阅读(938) 评论(0) 推荐(0) 编辑

摘要: 发现一个问题,在FC14 的Firefox浏览器中,编辑和排版好的博文,在windows下用chrome或者猎豹浏览器打开后,排版就变得阅读不是很容易里,而且经常不经意的断行。不知道园子的管理人员时候注意到了这个问题。 Linux系统的登录和windows登录存在很大的区别,Linux的登录过程是完全可配置的,而windows系统的可配置性相对来说就弱一些,虽然可以通过启动脚本和msconfig命令修改一些启动属性,但还是不能随用户完全定制启动过程。【1】登录用户 Linux是一个多用户的用户系统,在同一时刻可以登录多个不同的用户。在登录到系统后可以通过命令查看当前的登录用户名。[vo... 阅读全文
posted @ 2013-06-24 16:36 volcanol 阅读(2339) 评论(0) 推荐(0) 编辑

2013年6月23日

摘要: 在上一篇我们成功安装了视频播放器,并且成功安装里解码器【Linux_Fedora_应用系列】_2_如何安装视频播放器和视频文件解码 安装完的Smplayer的GUI的界面程序,可以播放FLV、AVI、Rmvb、MP4以及rm格式的文件,但是还不能播放WMV格式的视频文件,同时我们在上一次安装的时候,我们同时利用下面的命令安装了mplayer的rpm包,但是没有安装GUI界面。yum install mplayer smplayer1、安装mplayer的图形界面 我们在终端查看一下发现,已经成功安装了mplayer:[root@volcanol win32]# rpm -qi mpl... 阅读全文
posted @ 2013-06-23 21:52 volcanol 阅读(1659) 评论(0) 推荐(0) 编辑

2013年6月22日

摘要: 为什么写这篇文章呢? 为什么要弄这么个题目呢? 首先解释为什么用这个题目。这一切都要从那天在QQ群中的讨论说起,那天在群中,一个哥们问了一个关于(void)0 的问题。然后大家说到了(void)0和(void*)0; 大家看看(void)0 和(void*)0 ,是不是一个像个平胸的小妹,一个像个丰韵的美女。 他问的的问题如下:(void)0; //这个语句在C语句中可以执行吗? 我想了一下这个语句应该没有什么问题,在没有用(void)0,去影响内存对象的情况下,应该是可以的。下面是我在FC 14中进行测试的结果。[volcanol@volcanol c]$ lsa.out ... 阅读全文
posted @ 2013-06-22 21:11 volcanol 阅读(2378) 评论(7) 推荐(4) 编辑

摘要: 在前面的一篇博文中,我们进行了音乐播放器的安装和解码器的安装。【Linux_Fedora_应用系列】_1_如何安装音乐播放器和mp3解码 这里我们来进行视频播放器的安装。我们还是通过yum方式安装。1、安装Totemyum install Totem 如果您使用的是默认的FC14 的yum库,那么可以发现不能正常安装这个软件。因此需要修改yum库的配置。2、新建yum库配置文件 在FC系列中,yum的配置文件保存在: /etc/yum.repos.d目录下,目录下以repo结尾的文件,就是yum库的配置文件 yum配置文件的格式如下[local-update]name=local-up... 阅读全文
posted @ 2013-06-22 16:50 volcanol 阅读(4310) 评论(0) 推荐(0) 编辑

摘要: 因为安装环境的不同,Fedora在安装后会安装不同的软件包。通常在安装的时候有多种选择: 1、桌面环境: 适合个人日常使用,安装包含办公软件(Fedora 默认安装Open Office)、娱乐影音软件,此版本不会默认不会安装source包,经常会在安装其他软件的时候,提示找不到: build 文件。 2、开发环境: 适合软件开发人员使用,不会安装办公软件和娱乐影音软件,此版本会默认安装大部分的库文件,一般在装应用软件的时候不会提示缺少其他文件。 3、服务器:适合作为网络服务器使用。 例如,我安装的是fedora 14 的开发环境,这样就不会安装fc中默认的音乐播放器,... 阅读全文
posted @ 2013-06-22 15:09 volcanol 阅读(3125) 评论(0) 推荐(0) 编辑

2013年6月21日

摘要: 今天晚上,我突然想在自己到笔记本上安装linux系统,因为我自己第一次接触到的linux是红帽支持到Fedora Core 4,所以一直最中意的linux发行版本是FC系列,同时由于FC 15以后到版本有点类似于winodows 8的风格,我个人又不是很喜欢,因此弄了个FC 13安装。 安装过程,没有必要细说,只是安装完成后,有线能上网,但是无线无法上网,于是自己就想弄的无线也能上网。弄了很长时间都没有成功。于是就各种求助和搜索。 下面是我解决这个问题到整个过程:1、确定无线网卡到型号 利用lspci命令结合grep命令取得无线网卡到型号:[volcanol@volcanol ~]$ ls.. 阅读全文
posted @ 2013-06-21 01:02 volcanol 阅读(1705) 评论(0) 推荐(1) 编辑

2013年6月18日

摘要: 我记得去年还是今年早些时候,garbageMan大侠写系列文章《C解毒》的时候,我就说等他的书写出来后,一定要买一本看看,这不前天晚上在京东拍了一本书,没想到今天下午就到了,花了几十大洋,呵呵,下面是书的封面图片: 还没来的及细看,印刷质量很好,纸张质量还行。 为什么要现在买这本书呢? 这要从前段时间的园子里那篇文章说起: 程序员都不读书,但你应该读上面的链接的文章中,提到的有些人认为不需要读书的几点理由总结起来可以概括为以下两点: 1、现在互联网在全球各地都可以轻易的获取信息。 2、编程类书籍编写的质量差,很多书都是些什么21天,什么几天精通什么,... 阅读全文
posted @ 2013-06-18 00:22 volcanol 阅读(1893) 评论(13) 推荐(3) 编辑

2013年6月12日

摘要: 前些日子,写了些关于职场的文字,在园子里也引起了一些朋友的讨论,有支持的,有不支持的,今天我们还继续来讨论一些关于职场的这些事,只是这次不在讨论职场前辈,而是讨论员工本身。 下面我们来还是来问几个问题: 1、你是否经常有这样的感慨:为什么机会总是别人的? 2、你是否经常有这样的感慨:为什么那个人什么也不会,每天就是陪领导喝喝酒,吹吹牛就能得到领导的赏识。 3、你是否经常有这样的感慨:为什么自己干活的时候同事们都不帮忙,而且经常多方刁难。 4、你是否经常有这样的感慨:为什么自己到公司几年了,一点向上提升的迹象都没有。 5、你是否经常有这样的感慨:为什么自己累死累活,领导还经常说这... 阅读全文
posted @ 2013-06-12 13:16 volcanol 阅读(2033) 评论(13) 推荐(7) 编辑

2013年5月25日

摘要: 我记得在以前的一篇随笔中,我堆windows下的<assert.h>进行了分析,今天我们来看看gcc中这个文件的定义是怎样的。【1】assert宏的作用 assert宏实现断言的作用,一般在源文件中引用格式如下:#include <assert.h>#undef NDEBUGassert(expression)关于assert宏: 1、当 expression的值为0时进行断言,如果表达式expression的值非零,则不进行断言。 2、assert宏进行断言的时候,在标准错误输出中输出断言发生的源文件名称:__FILE__ 和断言发生时语句所在的行: __LINE__ 阅读全文
posted @ 2013-05-25 20:34 volcanol 阅读(1066) 评论(0) 推荐(0) 编辑

2013年5月24日

摘要: 昨天晚上下载了一份GCC V1.42的代码,不知道是源代码本身有问题,还是下载的源代码有问题,看的第一个C文件就存在一些很奇怪的情况。 首先要说的是: alloca.c 文件的作用,alloca.c文件的函数实现动态堆空间的分配,即运行时堆栈空间分配。【1】源代码 1 /* 2 alloca -- (mostly) portable public-domain implementation -- D A Gwyn 3 4 last edit: 86/05/30 rms 5 include config.h, since on VMS ... 阅读全文
posted @ 2013-05-24 23:05 volcanol 阅读(1837) 评论(6) 推荐(0) 编辑

2013年5月19日

摘要: ---恢复内容开始--- “ 一流的领导,自己不干,下属拼了命为你干 二流的领导,自己和下属一起拼了命干 三流的领导,自己不干,要求下属拼了命为自己干 四流的领导,自己拼了命干,下属不干 五流的领导,自己和下属都不干 ” 本来不想说这个问题的,但是最近情绪有点小波动,所以想起在这里说这个问题。 我想在园子里,应该有很多大神、大牛、大侠都带过团队,但是在这个过程中或者过程后,你们有没有人想过自己是否是一个合格的项目经理人。作为一个领导者(leader),有没有想过以下的一些问题: 1、你有没足够的实力来领导你的团队呢? 2、你有没有领会领导的真谛? 3... 阅读全文
posted @ 2013-05-19 06:51 volcanol 阅读(2555) 评论(32) 推荐(11) 编辑

2013年5月11日

摘要: 今天看Windows Program Via c/c++;突然想看一下Windows加载EXE文件或者可执行文件的过程。于是就建立了一个项目进行测试: 代码很简单,就是建立一个窗口。/* windows program via c/c++exp: chapter 1*/#include <windows.h>LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, ... 阅读全文
posted @ 2013-05-11 00:20 volcanol 阅读(1638) 评论(0) 推荐(0) 编辑

2013年5月9日

摘要: 前些日子,在QQ群里面,发现一些朋友在讨论函数返回后,为什么值可以传递和地址传递的情况;我也感到很好奇,于是就跟了一下。int* sum(int x,int y){ int a; a=x|y; return &a;} 很显然这段代码,存在一些问题;但是在VC2008中编译一切正常,运行状态也一切正常。下面是我的测试代码:#include <stdio.h>int* sum(int x,int y){ int a; a=x+y; return &a;}int getsum(int x,int y){ return x+y;}in... 阅读全文
posted @ 2013-05-09 23:30 volcanol 阅读(481) 评论(7) 推荐(0) 编辑

volcanol ----View OF Linux Can Appreciate Nature OF Linux。