linux程序设计
文章平均质量分 56
DyLan985
想在IT方面做点事,希望志同道合的朋友多多交流和指点
展开
-
Windows系统下安装linux后的不能上网的若干解决方法
一 配置MAC地址永久修改<!--p {margin-bottom:0.21cm}-->首先,打开“/etc/resolv.conf”设置dns服务器ip,即:sudogedit /etc/resolv.conf编辑如下:#Generate原创 2011-09-08 10:37:34 · 3049 阅读 · 0 评论 -
用Kdevelop创建工程时出现:"You need to select a cmake binary"
今天用新系统安装Kdevelop后测试新工程时,出现: 后来检查发现没有安装cmake……打开终端,输入: sudo apt-get install cmake build-essential再次新建工程,出现: 搞定……转载 2011-11-29 17:25:00 · 1346 阅读 · 0 评论 -
Qt 4常见的IDE及其优缺点比较-推荐Qt Creator和Eclipse
现在支持Qt的IDE(集成开发环境,以下简称IDE)有很多种,其中能够像Qt一样跨平台使用的主要有Qt Creator、QDevelop 、Eclipse 、MonkeyStudio、 Code::Blocks等。在X11平台上还有老牌的 KDevelop。在Windows平台上使用比较多的则主要是Microsoft的Visual Studio系列以及Eclipse。在Mac上主要是使转载 2011-11-29 17:40:27 · 2120 阅读 · 0 评论 -
Linux下的硬件驱动——USB设备(上)(驱动配置部分)
简介: USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题。本文着力从Linux系统下设备驱动的架构,去阐述怎样去使用和配置以及怎样编制USB设备驱动。对于一般用户,可以使我们明晰Linux设备驱动方式,为更好地配置和使用USB设备提供了方便;而对于希望开发Linux系统下USB设备驱动的程序员,提供了初步学习US转载 2011-11-30 09:28:38 · 1277 阅读 · 0 评论 -
Linux下常用文件解压命令
inux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress file.Z3.以.gz为扩展名的文件:#gunzip file.gz4.以.bz2为扩展名的文件:#bunzip2 file.bz25.以.tar.Z为扩展名的文件:#tar xvZf file.tar.Z或转载 2011-12-03 17:22:04 · 849 阅读 · 0 评论 -
ubnutu下强制清空回收站
如果你点了清空回收站,但还是有垃圾的话,你可以运行这个命令: sudo rm -fr $HOME/.Trash/ Ubuntu Linux的回收站就是一个隐藏文件夹,在主目录的.Trash/下,rm -fr命令的意思是强制、递归的删除。原创 2011-12-04 10:50:25 · 745 阅读 · 0 评论 -
安装Ubuntu 10.10后XP启动项丢失
网上提供的方法都是这样的,说是安装Ubuntu 10.10后重启Windows XP启动项会丢失。 Ubuntu 10.10使用的是grub2,只有你进入Ubuntu后,在终端输入 sudo update-grub 就可以更新grub菜单,找到所有可用的系统,修改默认启动顺序请编辑sudo gedit /boot/grub/grub.cfg 后将default值“0”(Ubuntu)改转载 2011-12-06 10:50:41 · 884 阅读 · 0 评论 -
linux驱动程序开发的简单休眠
linux最简单的休眠方式是wait_event(queue,condition)及其变种,在实现休眠的同时,它也检查进程等待的条件。四种wait_event形式如下:wait_event(queue,condition);/*不可中断休眠,不推荐*/wait_event_interruptible(queue,condition);/*推荐,返回非零值意味着休眠被中断,且驱动应返回-ER原创 2011-12-19 14:14:51 · 1088 阅读 · 0 评论 -
Linux设备驱动程序学习笔记之信号量和互斥体
一个信号量(semaphore: 旗语,信号灯)本质上是一个整数值,它和一对函数联合使用,这一对函数通常称为P和V。希望进入临届区的进程将在相关信号量上调用P;如果信号量的值大于零,则该值会减小一,而进程可以继续。相反,如果信号量的值为零(或更小),进程必须等待知道其他人释放该信号。对信号量的解锁通过调用V完成;该函数增加信号量的值,并在必要时唤醒等待的进程。当信号量用于互斥时(即避免多个进程原创 2011-12-19 14:22:45 · 2175 阅读 · 0 评论 -
Qt4书中第一个例子,找不到QApplication头文件的问题解决
在做《C++ GUI Programming with Qt 4》书中的第一个例子时就被卡到了。Qt版本为4.2.0。程序源码:复制代码#include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLa原创 2011-12-20 09:18:17 · 12000 阅读 · 2 评论 -
spinlock,mutex,semaphore,vitical section的作用与区别
Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。Binary原创 2011-12-19 11:37:55 · 1612 阅读 · 1 评论 -
linux不能上网的网络配置
<!--@page {margin:2cm}pre.western {font-family:"DejaVu Sans"}pre.cjk {font-family:"DejaVu Sans"}p {margin-bottom:0.21cm}-->sudogedit /etc/resolv.conf# Generated by NetworkMa原创 2011-12-12 19:58:43 · 1222 阅读 · 0 评论 -
linux下DNS详解及应用二
一、Linux 下主要DNS配置文件Linux 下主要DNS配置文件见表一、二、三:表-1 DNS主要配置文件文件名称中文名称作用/etc/hosts主机的一个列表文件包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS网络名称服务器之前,/原创 2011-12-13 12:14:44 · 3009 阅读 · 2 评论 -
QT的信号与槽机制介绍
从QObject或其子类(例如Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要 做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对 象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。你可以将很多信号与单原创 2011-12-20 14:27:21 · 904 阅读 · 0 评论 -
linux下tree、命令的用法及实现代码
Linux下有这样一个命令,可以把当前目录下的所有文件和子文件以tree的方式显示出来,看下效果[www.linuxidc.com@localhost test]$ tree . |-- A |-- B |-- C `-- test2 |-- D |-- E `-- F 3 directories, 4 files [crazybaby@原创 2011-12-16 08:05:16 · 3312 阅读 · 0 评论 -
unix高级编程之-命令行参数(实践一)
1 atexit 函数 格式 #include int atexit( void (*func)(void) ); 其中,atexit函数的参数是一个函数地址,当调用此函数时无需向他传递任何参数,也不期望他返回一个值。exit调用这些函数的顺序与他们登记时候的顺序相反。同一函数如若登记多次,则也会被调用多次。2 实例 #include stati原创 2012-05-28 08:49:48 · 977 阅读 · 0 评论 -
linux中cat命令使用详解
cat主要有三大功能:1.一次显示整个文件。$ cat filename 2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件. 3 .将几个文件合并为一个文件。 $cat file1 file2 > filet原创 2012-10-02 11:54:14 · 1374 阅读 · 0 评论 -
Linux伪终端 telnet源码
pty_fun.cpp #include "pty_fun.h" int ptym_open(char *pts_name, int pts_namesz) { char *ptr; char fdm; /* *return the name of the master device so that on failure *转载 2011-11-29 20:41:29 · 1347 阅读 · 0 评论 -
Linux下中断处理程序源码分析
下面是最近调试中断时额外研习了一下Linux的内核代码,下面就直接贴代码和注释了,大量借鉴了网上牛人的见解,还望海涵!! int main (int argc, char **argv) { char *p; int daemon_mode = 0; char *progname; struct th转载 2011-11-29 20:19:43 · 2129 阅读 · 0 评论 -
fork()函数 Linux
#include #include 函数定义: pid_t fork( void ); (pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1 函数说明: 一个现有进程可以调用fork函数创建转载 2011-10-22 20:47:06 · 855 阅读 · 0 评论 -
/usr、/home、/bin、/dev、/var、/etc中主要存放什么文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:/usr/X11R6 存放X window的目录/usr/bin 众多的应用程序/usr/sbin 超级用户的一些管理程序/usr/doc linux文档/usr/include linux下开发和编译应用程序所需要的头文件/usr/lib 常用的动态链接库和软件包的配置文件/usr/man 帮助原创 2011-10-22 21:33:47 · 21000 阅读 · 0 评论 -
推荐几个学习linux的国外著名论坛网站
http://crunchbanglinux.org/forums/forum/8/tips-tricks-scripts/http://bbs.archlinux.org/http://www.linuxforums.org/http://www.linuxsir.org/bbs/index.php (国内)原创 2011-10-28 08:23:27 · 10985 阅读 · 0 评论 -
linux编程中的资源和限制
下面一个程序limits.c实现了能够显示程序运行过程中优先级的显示和软硬看门狗的实现:#include #include #include #include #include #include #include void work(){ FILE *f; int i; double x=4.5; f=tmpfile(); fo原创 2011-11-17 15:09:37 · 553 阅读 · 0 评论 -
linux下嵌入式交叉安装交叉编译器步骤
第一步:将 arm-linux-gcc-4.3.2.tgz 文件拷贝到 Ubuntu 的/forlinx 目录下,该文件位于用户基础资料光盘的“实用工具”文件夹中。在 Ubuntu 中新建一个终端,输入下面的命令安装交叉编译器:#cd /forlinx(进入/forlinx 目录)#mkdir /usr/local/arm(创建目录,若目录已存在会提示错误,跳过即可原创 2011-10-30 21:45:02 · 2532 阅读 · 0 评论 -
首次内核编译出错,更改路径的方法
root@ubuntu:~/forlinx/linux-2.6.36.2# make zImagemake: arm-linux-gcc: Command not found CHK include/linux/version.h CHK include/generated/utsrelease.hmake[1]: `include/ge原创 2011-10-30 22:38:34 · 6882 阅读 · 0 评论 -
arm-linux-gcc编译生成的文件通过SD卡烧写到开发板上的方法
1 把SD卡插入卡发板的USB接口中2 打开终端,用ls命令行,找出下面的udisk文件夹,该文件夹就是SD卡3 用命令行#:cd /udisk 进入SD卡,然后用#:ls查找需要的文件4 利用#:cp filename /tmp把文件拷贝到系统临时文件中原创 2011-11-01 22:02:28 · 3123 阅读 · 1 评论 -
一个在linux下的键盘字符识别程序
一 软件说明:在linux下ubuntu9.11下运行:gcc keypad1.c -o keypad1 lcurses :./keypad1二 可以用这个软件锻炼自己的打字说平,每按下一个键盘上面的字符。屏幕上就会显示该字符。代码://该程序用于锻炼键盘打字水平#include #include #include #define LOCAL_ESCAPE_KE原创 2011-11-22 13:51:58 · 1479 阅读 · 0 评论 -
linux 终端的后台任务结束详解
在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台。导致无法退出终端。输入命令:exit终端显示:There are stopped jobs.解决方法:方法一、输入命令:jobs终端显示:[1]+ Stopped vim /etc/network/interfaces > /home/leo/Desktop/ip.txt (wd: /)KILL %1原创 2011-11-23 14:35:54 · 3573 阅读 · 0 评论 -
liunx中多线程操作实例解析
自己写的一个小程序,用来实现liunx中多线程程的调用。例子清晰易懂/*该函数实现了线程的调用,多线程的用法*/#include #include #include #include #include void *thread_function(void *arg);void *thread_function1(void *arg);原创 2011-11-24 09:44:04 · 902 阅读 · 0 评论 -
ubuntu9下shell命令中的function的用法
在我看鸟个私房菜过程中,13章关于function的代码一个也运行不通,在仔细查找了原因后,才发现function在ubuntu下的格式和书上面的那种格式不一样。鸟个私房菜代码:#!/bin/bash#program:# show "Hello" from $1.... by using case.... esac#History:#2005/98/29 Vbird原创 2011-11-04 14:15:13 · 4130 阅读 · 1 评论 -
linux中一个通过管道读取大量数据的程序源代码
//运行环境:ubuntu9//可以实现对管道的多次读取 #include #include #include #include int main(){FILE *read_fp; char buffer[BUFSIZ+1]; int chars_read; memset(buffer,'\0',sizeof(buffer)); re原创 2011-11-25 10:42:04 · 2110 阅读 · 0 评论 -
命名管道详解
What is a named pipe?A named pipe is a special file that is used to transfer data between unrelatedprocesses. One (or more) processes write to it, while another process reads from it.Named pipes转载 2011-11-26 09:44:54 · 782 阅读 · 0 评论 -
fflush(stdout)用处简单介绍
#include#includeint sum;//sum is a global variablemain(){ int i;//i is a local variable sum = 0; for(i = 1;i { printf("The value of i is %d/n",i); fflush(stdout);//flush the buf转载 2011-11-27 09:07:05 · 1450 阅读 · 0 评论 -
基于消息队列的信息传输机制
在同一个电脑上,怎么实现信息间的传递,特别是对与linux中的不同用户之间。下面有个小程序,实现了用户间的信息传递:/*发送端 名称为:send.c/* #include #include #include #include #include #include #define MAX_TEXT 512 stru原创 2011-11-27 09:52:27 · 1078 阅读 · 0 评论 -
linux中atexit的用法
转载 2011-11-27 17:11:26 · 787 阅读 · 0 评论 -
LDD3源码分析之llseek分析(二)
一 对llseek做了不同的分析: #include #include #include #include #include #include #define BUF_SIZE 50 #define DEVICE_FILE "test.c"int main(int argc, char *argv[]){ int fd; int nu原创 2012-11-20 22:48:08 · 960 阅读 · 0 评论