随笔分类 -  Linux

上一页 1 2 3 4 下一页
Linux Debug tools(转贴)
摘要:2010-10-27 11:47 by zhenjing, 1400 阅读, 0 评论, 收藏, 编辑1. gdb attach [pid] -- debug a running process2. valgrind-- a suite of tools for debugging and profiling programsVery powerful tool to debug linux program,just for x86 platform3. strace -trace system calls and signalsIn the simplest case strace runs 阅读全文
posted @ 2013-06-09 08:05 spinsoft 阅读(326) 评论(0) 推荐(0)
纯文本打印机(打印到文件)驱动安装设置方法
该文被密码保护。
posted @ 2013-06-03 15:00 spinsoft 阅读(0) 评论(0) 推荐(0)
【转载】udev硬件设备管理机制
摘要:第二章:Udev硬件设备管理机制2.00本章内容简介:·理解Linux中的Udev是如何管理硬件设备;·学习如何为自定义设备名编写udev规则;2.01Udev的功能:在Linux系统中,内核的主要功能可以分为5大部分:文件系统、内存调度、进程调度、协议管理、硬件管理。其中的硬件管理就是由Udev提供的。系统中的/dev目录是一个包含了大量设备条目的目录,通过Udev来对设备进行管理,给设备提供对应的名称空间,为设备命名,应用程序可以查询设备是否存在以及设备的名称等。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用 阅读全文
posted @ 2013-05-22 13:13 spinsoft 阅读(625) 评论(0) 推荐(0)
Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用
摘要:http://www.cnblogs.com/cxjchen/archive/2013/05/10/3071250.html在串口编程模式下,open未设置O_NONBLOCK或O_NDELAY的情况下。c_cc[VTIME]和c_cc[VMIN]映像read函数的返回。VTIME定义等待的时间,单位是百毫秒(通常是一个8位的unsigned char变量,取值不能大于cc_t)。VMIN定义了要求等待的最小字节数,这个字节数可能是0。如果VTIME取0,VMIN定义了要求等待读取的最小字节数。函数read()只有在读取了VMIN个字节的数据或者收到一个信号的时候才返回。如果VMIN取0,VT 阅读全文
posted @ 2013-05-16 10:07 spinsoft 阅读(273) 评论(0) 推荐(0)
I/O多路复用
摘要:参考链接:http://www.cnblogs.com/xuddong/archive/2013/05/13/3075861.htmlselect() 系统调用select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select()就返回。#include <sys/select.h>#include <sys/time.h>int select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct 阅读全文
posted @ 2013-05-15 15:55 spinsoft 阅读(236) 评论(0) 推荐(0)
O_NONBLOCK与O_NDELAY有何不同?
摘要:O_NONBLOCK和O_NDELAY所产生的结果都是使I/O变成非搁置模式(non-blocking),在读取不到数据或是写入缓冲区已满会马上return,而不会搁置程序动作,直到有数据或写入完成。它们的差别在于设立O_NDELAY会使I/O函式马上回传0,但是又衍生出一个问题,因为读取到档案结尾时所回传的也是0,这样无法得知是哪中情况;因此,O_NONBLOCK就产生出来,它在读取不到数据时会回传-1,并且设置errno为EAGAIN。不过需要注意的是,在GNU C中O_NDELAY只是为了与BSD的程序兼容,实际上是使用O_NONBLOCK作为宏定义,而且O_NONBLOCK除了在ioc 阅读全文
posted @ 2013-03-28 14:59 spinsoft 阅读(767) 评论(0) 推荐(0)
几种Linux段错误调试方法
摘要:产生段错误的原因段错误就是指某一进程访问了不属于它权限范围的内存空间,比如:访问了不存在的内存,访问了受系统保护的内存,访问了只读的内存等。下面是一段会产生段错误的实例代码:main.c#include <stdio.h>#include <string.h>void test(){ char *p = NULL; *p = 'T';}int main(){ test(); return 0;}编译运行main.c,会输出段错误提示?wbhuang@ubuntu:~/src/test_debug_segmentation$ gcc -g ... 阅读全文
posted @ 2013-03-15 13:22 spinsoft 阅读(1486) 评论(0) 推荐(0)
linux 信号处理机制——signal
摘要:信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念本节先介绍信号的一些基本概念,然后给出一些基本的信号类型和信号对应的事件。基本概念对于理解和使用信号,对于理解信号机制都特别重要。下面就来看看什么是信号。1、基本概念软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill 阅读全文
posted @ 2013-03-08 15:58 spinsoft 阅读(222) 评论(0) 推荐(0)
linux使用Windows中的ttf字体
摘要:http://www.cnblogs.com/cnrush/archive/2013/03/02/2940013.html两种情况:一、双系统,Win与Linux共存: 1、将字体文件夹所在的分区挂载到Linux中 2、将Windows的字体文件夹创建一个软链接到Linux的字体文件夹中,不同的系统位置可能略有差异;Fedora和Linux Mint在/usr/share/fonts中。 #ln -s /media/Win7/Windows/Fonts /usr/share/fonts/msfonts 3、刷新字体缓存 #cd /usr/share/fonts #fc-cach... 阅读全文
posted @ 2013-03-02 14:27 spinsoft 阅读(1078) 评论(0) 推荐(0)
source命令的真谛
摘要:来源:http://blog.csdn.net/jiankun_wang/article/details/4326489感谢原作者:)source命令,也就是那个“.”的作用就是执行一个脚本,难道它仅仅是执行一个脚步吗?当然不是。source命令确实是执行了一个脚本,但它和普通的执行一个脚本是有区别的,看看下面的输出:wangjk@wangjiankun:~/scripts$echo $NAMEwangjk@wangjiankun:~/scripts$echo $COLORwangjk@wangjiankun:~/scripts$ cat -n soure_test.sh 1 #!/bin/b 阅读全文
posted @ 2013-01-29 08:16 spinsoft 阅读(233) 评论(0) 推荐(0)
【Linux必知必会】initrd.img、vmlinux和 vmlinuz************
摘要:initrd.img是一个小的映象,包含一个最小的linux系统。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块,然后发现真正的root分区,挂载并执行/sbin/init...initrd.img当然是可选的了,如果没有initrd.img,内核就试图直接挂载root分区。说 initrd.img文件还会提到另外一个名角---vmlinuz。vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存 阅读全文
posted @ 2013-01-09 08:21 spinsoft 阅读(4454) 评论(0) 推荐(0)
【Linux必知必会】initrd.img、vmlinux和 vmlinuz
摘要:initrd.img是一个小的映象,包含一个最小的linux系统。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块,然后发现真正的root分区,挂载并执行/sbin/init...initrd.img当然是可选的了,如果没有initrd.img,内核就试图直接挂载root分区。说 initrd.img文件还会提到另外一个名角---vmlinuz。vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存 阅读全文
posted @ 2013-01-08 16:55 spinsoft 阅读(668) 评论(0) 推荐(0)
shell调试技术
摘要:一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调试机制和调试工具的支持,其输出的错误信息又往往很不明确,初学者在调试脚本时,除了知道用echo语句输出一些信息外,别无它法,而仅仅依赖于大量的加入echo语句来诊断错误,确实令人不胜其繁,故常见初学者抱怨sh 阅读全文
posted @ 2013-01-08 16:19 spinsoft 阅读(182) 评论(0) 推荐(0)
Ubuntu 中的root账户切换 和忘记密码更改
摘要:(1)从user用户切换到root用户不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要用sudo授权,感觉很麻烦此时我们可以切换到root用户,只需要简单的执行sudo su 即可注意: 出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变的,貌似是每5分钟改变一次,所以用su(switch user)是不可以的,因为我们不知道root的密码(2)从root用户切回user用户想从root用户切回user用户只需执行命令:su user (us 阅读全文
posted @ 2013-01-08 13:31 spinsoft 阅读(703) 评论(0) 推荐(0)
调试器GDB
摘要:GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。它是一种强大的命令行调试工具。一般来说,调试器的功能:能够运行程序,设置所有能影响程序运行的参数;能够让程序在指定条件下停止运行;能够在程序停止时检查所有参数的情况;能够根据指定条件改变程序的运行。gdb调试源代码流程:1)进入GDB #gdb test只需输入GDB和要调试的可执行文件即可,在GDB的启动画面中指出了GDB的版本号、遵循的许可等信息,接下来就进入了由"(gdb)"开头的命令行界面了;2)查看文件 (gdb) l在GDB中键入"l"(list)就可以查看程序的源码了,GDB列 阅读全文
posted @ 2012-12-27 08:02 spinsoft 阅读(274) 评论(0) 推荐(0)
深入理解Daemon [转]
摘要:用linux的各位巨巨应该都知道在系统里有种进程叫做daemon,一般理解为后台服务,它有一些特征,比如后台运行,不能直接在终端控制,用户退出登陆后也不会停止等等;有时候我们也想自己运行的脚本能够”后台运行”,往往使用的是nohup这个工具。那么daemon到底是什么呢?(如果以下解释里有任何遗漏或者错误,也欢迎指出)在许许多多的开源工具(例如这里)里我们都能找到类似如下的代码,这2次fork被称作unix magic 2 forks1234567891011121314151617181920212223242526272829303132333435363738394041424344de 阅读全文
posted @ 2012-12-19 15:32 spinsoft 阅读(817) 评论(0) 推荐(0)
几款开源的图形界面库(GUI Libraries)
摘要:SmartWin++遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用。也支持Pocket PC和基于Windows CE的应用程序...XCLASSXCLASS库是X Windows环境中的一个C++ GUI工具包的。它是基于Xlib的,由一套组件,包括从简单部件到复杂的,其中也包括许多常用的对话框。组件有MS Windows外观风格。Windows++Windows++是一个轻量级的C++应用程序框架,它可以让你的C++程序中使用窗口FOXFOX是一个C++开发图形用户界面库,方便和有效的基础工具包。V C++ 阅读全文
posted @ 2012-12-04 10:23 spinsoft 阅读(333) 评论(0) 推荐(0)
valgrind检测linux程序内存泄露
摘要:1.可以在Valgrind Home下载最新版本;2.解压之后,打开README文件,查看软件的安装方法,一般都是./configure make make install这三步;3.检查是否安装正确:1 valgrind ls -l我安装的时候出现如下错误: 1 # valgrind ls -l 2 ==13544== Memcheck, a memory error detector 3 ==13544== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. 4 ==13544== Using Valgri 阅读全文
posted @ 2012-11-02 09:44 spinsoft 阅读(495) 评论(0) 推荐(0)
Linux下makefile教程
摘要:转自陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,ma 阅读全文
posted @ 2012-10-31 15:21 spinsoft 阅读(210) 评论(0) 推荐(0)
wget 使用技巧
摘要:wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。$ wget -r -np -nd http://example.com/packages/这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np的作用是不遍历父目录,-nd表示不在本机重新创建目录结构。$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/与上一条命令相似,但多加了一个--a 阅读全文
posted @ 2012-10-17 14:11 spinsoft 阅读(142) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页