Linux
lxmky
这个作者很懒,什么都没留下…
展开
-
不使用sizeof,确定机器int大小
#includeint main(){ int i; unsigned int x = (unsigned int)~0; for (i = 1; x >>= 8; i++); printf("%d\n", i); }方法2:#includeint main(){ int a = 0; printf("%d",(char *)(&a + 1) - (char *)(&原创 2016-01-16 09:00:33 · 2449 阅读 · 0 评论 -
浅析malloc()的几种实现方式
malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分转载 2011-10-19 12:46:39 · 1039 阅读 · 0 评论 -
mini2440 SPI驱动移植
最近项目需要,需要在mini2440上移植SPI驱动,板子需要驱动SPI设备,上网找了很多资源,但是很多都是有问题,最终在基本理解驱动结构的前提下,将SPI驱动顺利移植到mini2440。,我使用的内核版本是2.6.32.2,这个版本和2.6。29不一样,网上很多版本都是关于原创 2011-10-10 11:24:42 · 8882 阅读 · 14 评论 -
UNIX Domain Socket IPC
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于I转载 2011-10-13 15:08:36 · 646 阅读 · 0 评论 -
使用Linux操作系统命令来发送信息
Linux发展到今天,很多功能已经可以在可视化的界面中来完成。不过在很多情况下,命令还是非常有用的,特别是Linux系统管理员可以通过命令发送系统休息、布告栏信息、公共信息的方式与其他用户沟通。设置登录提示/etc/motd文件的用途/etc/motd?即转载 2011-09-24 00:44:28 · 1065 阅读 · 0 评论 -
Eclipse + Android + Linux
最近闲着没事,正好又看见100在学习Android下的开发,所以我也打算学习一些android开发的皮毛,首先是建立好编程开发环境,最近一直在用Linux,所以这里介绍的是Linux下的开发环境搭建。1,安装Eclipse开发环境前一段时间在Linux下使用eclipse原创 2011-09-22 09:50:07 · 749 阅读 · 0 评论 -
Linux系统中如何添加自己的库文件路径
库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外转载 2011-09-21 15:19:45 · 794 阅读 · 0 评论 -
Linux下bash.bashrc文件和profile文件
在修改bash.bashrc和profile文件后,只有在重新登陆后才会修改所有的程序的环境变量,如果只是在shell下修改,souce /etc/bash.bashrc后,只会修改shell的环境变量,其他process的环境变量还是不变原创 2011-09-21 10:06:35 · 5180 阅读 · 0 评论 -
APUE 8.3 fork function
The new process created by fork is called the child process. This function is called once but returns twice. The only difference in the re原创 2011-08-13 16:09:28 · 656 阅读 · 0 评论 -
WHY IS GREP
Rumor has it that the grep command comes tous bceause of the search command in the ex editor. The ex editor was the line-based precursor to原创 2011-08-09 22:15:36 · 522 阅读 · 0 评论 -
mini2440下移植USB Wi-Fi模块成功
前段时间移植了U-boot和linux2.6.27.9到mini2440上,最近有点空,手头有一个usb接口的zd1211b芯片的wifi无线网卡(PSP和NDSL玩家都知道的神卡),于是决定进行wifi无线网卡在嵌入式中的移植。要在内核中加入此无线网卡的驱动。我是在我移植的linux2.6.27.9内核上移植的。关于内核移植,请看我的这篇文章。http://blog.chinaunix.net/u2/75270/showart.php?id=1796658新版的linux2.6.27.9已自带zd1211转载 2011-04-29 15:02:00 · 4311 阅读 · 4 评论 -
【转】ARM下面移植开发BlueZ
下面是直接从网上转过来的:前一段的时间,都在移植BlueZ的库文件和工具基到ARM的开发板,现在的整个一套设备已经基本完成。内核是开发板自己带的 2.6.13,从2.4.6后的版本里就已经在内核里带有了BlueZ支持,我要做的就是,进入Networking子项,build-in 上Bluetooth subsystem support。下面的L2CAP protocol support和SCO links support选中, Bluetooth device drivers里的是关于你使用USB蓝牙还是串转载 2011-04-19 20:24:00 · 4219 阅读 · 1 评论 -
bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录
<br />有时候编写脚本时会出现类似标题列出的错误,这个问题大多数是因为你的脚本文件在windows下编辑过。windows下,每一行的结尾是/n/r,而在linux下文件的结尾是/n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符/r,用cat -A urfile时你可以看到这个/r字符被显示为^M,这时候只需要删除这个字符就可以了。可以使用命令sed -i 's//r$//' urfile <br /> <br />转自:http://blogold.ch转载 2011-04-22 10:53:00 · 1117 阅读 · 0 评论 -
浅谈C中的malloc和free
原帖地址:http://bbs.bccn.net/thread-82212-1-1.html在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然转载 2011-10-19 15:33:12 · 449 阅读 · 0 评论 -
char s[]字串和char *s字串有什麼差別? (C/C++) (C)
AbstractC語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢?Introductionchar s[] = "Hello World";char *s = "Hello World";皆宣告了s字串,在C-style string的函數皆可使用,但兩者背後意義卻不相同。char s[] = "Hello World转载 2011-10-23 13:27:48 · 2813 阅读 · 0 评论 -
malloc()函数源代码
#include "types.h"#include "stddef.h"#include "string.h"/* Imported functions */extern void prom_printf (char *fmt, ...);static char *malloc_ptr = 0;static char *malloc_top = 0;static char *l转载 2011-10-26 23:49:34 · 10685 阅读 · 1 评论 -
Linux下实现定时器Timer的几种方法
定时器Timer应用场景非常广泛,在Linux下,有以下几种方法:1,使用sleep()和usleep()其中sleep精度是1秒,usleep精度是1微妙,具体代码就不写了。使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比较大时,sleep一般都会有超时现象。2,使用信号量SIGALRM + alarm()这种方式的精度能达到1秒,其中原创 2012-06-16 18:07:41 · 44180 阅读 · 4 评论 -
netlink代码示例
在用户和内核通信过程中,netlink非常方便,优势如下:1,双向2,异步3,多播代码如下:内核模块net_link.c代码:#include #include #include #include #include #include #define NETLINK_TEST 21struct sock *nl_sk = NULL;EXPORT_SYMBO转载 2012-05-16 11:08:23 · 2479 阅读 · 1 评论 -
PATCH详细介绍和使用规则
因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了。制作补丁可以解决这个问题。 学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者baidu搜索一下,然后选择有价值的资料,方法二是阅读man在线文档。完成收集工作,当然最终要在自己的Linux上作实验,比较总结,消化吸收为自己的东西。要除去这么一种错误思想:一定要学全。要知道,一转载 2012-03-13 11:21:12 · 4221 阅读 · 0 评论 -
Socket Linux和Windows下的区别
Socket编程windows到Linux代码移植遇到的问题1、一些常用函数的移植http://www.vckbase.com/document/viewdoc/?id=1586 2、网络------转载&修改(待整理)socket相关程序从windows移植到linux下需要注意的1)头文件windows下winsock.h/winsock2.h linux下sys/sock转载 2012-03-01 11:24:28 · 2745 阅读 · 0 评论 -
死锁——操作系统
操作系统中有若干进程并发执行, 它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况。此时,若不借助外界因素, 谁也不能释放资源, 谁也不能解除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁。 产生死原创 2012-01-10 10:43:04 · 560 阅读 · 0 评论 -
linux下使用TCP存活(keepalive)定时器
/*由hi.baidu.com/zhihui3409收集整理,转载时请附带此行*/一、什么是keepalive定时器?[1]在一个空闲的(idle)TCP连接上,没有任何的数据流,许多TCP/IP的初学者都对此感到惊奇。也就是说,如果TCP连接两端没有任何一个进程在向对方发送数据,那么在这两个TCP模块之间没有任何的数据交换。你可能在其它的网络协议中发现有轮询(polling),但在TCP转载 2012-01-09 17:46:18 · 834 阅读 · 0 评论 -
大型高并发高负载网站的系统架构
我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目转载 2011-12-15 12:39:54 · 808 阅读 · 0 评论 -
中科院计算所Linux命令上网解决方案
最近,所里对计费系统进行升级,系统由原来的亿邮系统升级为srun系统,Linux客户端由原来的命令行方式改为GTK图形界面,这可苦了我们这些ssh登陆的用户,最后没办法,由于客户端不开源,只能通过HTTP POST方式进行登陆。原理比较简单,通过curl命令,模拟浏览器登陆过程,通过wireshark抓包,通过http://159.226.39.22/mobile.html网页登陆中,提交的信息非原创 2011-12-12 11:15:59 · 1059 阅读 · 0 评论 -
I/O Multiplexing
The following is cited from APUE/******************************************One way to handle I/O multiplexing is to divide the process in two pieces(using fork), with each half handling one direct原创 2011-12-09 10:23:09 · 1159 阅读 · 0 评论 -
clock(), sleep(), Sleep()在windows和Linux的区别
最近在ARM上的Linux进行开发,需要将Windows下编写的C程序移植到Linux上去,其中需要将底层的SPI驱动实现,以及上层的Socket通信改写,其中应用程序也需要改变一些,整个过程中,让程序顺利跑起来没花费大的力气,这里要感谢强大的Eclipse +ARM-linux-gcc组合,但是在调试过程中,发现很多有趣的问题,其中一个就是关于Windows下的Sleep()函数和Linux下的原创 2011-11-30 14:28:01 · 11761 阅读 · 5 评论 -
最近项目中出现的问题(结构体,指针,文件描述符)
最近需要将服务器端软件由windows移植到Linux,以前讨论过windows下的Socket和Linux下的socket区别,虽然socket问题解决了,但是最近一系列的字符类型问题以及大端小端问题,折磨得我非常痛苦,下面述说这两天遇到的问题。1,操作野文件描述符在open("mini2440_spi", O_RDWR)操作时,没有将打开的文件描述符赋值给int spi,在后面操作sp原创 2011-11-24 14:34:03 · 1030 阅读 · 0 评论 -
Failed to build tmp/.config-package.in解决方案
Well the problem was windows line endings. Since my build machine wasn't online at first I used TortoiseSVN on my windows machine to sync with the OpenWrt trunk and then transferred to my linux mac原创 2011-11-22 17:47:41 · 3233 阅读 · 1 评论 -
ARM下交叉编译dbus中 error: expat.h 文件没有找到的解决方案
<br />纠结了很久,下载了最新的expat源文件,并且交叉编译成功了,并且将库文件放到了交叉编译器下,但是就是出现这种问题,最后没办法,通过在configure之后加入:<br /> <br />--with-xml=libxml<br /> <br />其实就是相当于将xml文件的解析方式改为libxml,而不采用默认的libexpat原创 2011-04-17 01:02:00 · 7047 阅读 · 0 评论 -
关于Ubuntu 10.04下编译BlueZ错误
<br /> <br />自己在Ubuntu 10.04下编译BlueZ总是出现各种错误,这次错误如下:<br /><br />/opt/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /lib/libgcc_s.so.1 when searching for libgcc_s.so.1<br />/opt/4.5.1/bin/原创 2011-04-20 01:45:00 · 1987 阅读 · 0 评论 -
Ubuntu下flash乱码问题解决办法
打开终端,输入以下命令:cd /etc/fonts/conf.d/sudo cp 49-sansserif.conf 49-sansserif.conf_backupsudo rm 49-sansserif.conf以上命令的功能是先备份49-sansserif.conf文件,再删除,经测试后有效。原创 2010-03-15 11:27:00 · 468 阅读 · 0 评论 -
ubuntu下的飞鸽
http://code.google.com/p/qipmsg/ 挺不错的,和windows下面的基本上没有什么区别!原创 2009-10-09 14:10:00 · 689 阅读 · 0 评论 -
iptux(linux下的飞信)安装中缺少包解决办法
本文主要参考:http://forum.ubuntu.org.cn/viewtopic.php?f=122&t=196562&start=0,但在操作时并不像文本描述那样顺序,记录一下。解压后,编译,报错configure: error: GNU gettext tools not found; required for intltool解决办法:sudo apt-get instal转载 2009-10-09 14:03:00 · 4176 阅读 · 0 评论 -
读者写者问题
读/写问题:有一个多进程共享的数据区,这个数据区可以是一个文件或者主存的一块空间。有一些只读取这个数据区的进程(reader)和一些只往数据区中写数据的进程(writer)。此外还必须满足以下条件:1.任意多的读进程可以同时读这个数据区;2.一次只有一个写进程可以往数据区中写;3.若一个写进程正在写,禁止任何进程读。l计数器readcount:记录同时原创 2009-09-08 09:56:00 · 806 阅读 · 0 评论 -
ubuntu 8.04 firefox flash安装
装了Ubuntu8.04后,Firfox的版本变成了3 Beta5版本,这自然让急于想偿试一下3.0版本的Firefox的我过了一下瘾,但由于还没有正式版本的发布,其插件和扩展的版本更新也有很多跟不上速度,导致很多扩展使用不了。 装了Ubuntu推荐的Flash插件后,页面显示总是把Flash元素显示为一个灰框框,上面一个三角播放图标。好象没有办法设置为自动播放,只有用鼠标原创 2009-07-03 16:53:00 · 815 阅读 · 0 评论 -
Ubuntu 安装的迅雷下载软件
saolei.xpi这个firefox插件可以破解讯雷下载地址用firefox打开就可以安装了加上multiget就可以下载讯雷等资源了在要下载的地方右键点copy link location就会弹出下载菜单,很方便插件下载地址;http://www.linuxdiyf.com/viewarticle.php?id=125461附件有multiget的deb包原创 2009-05-03 10:07:00 · 1593 阅读 · 0 评论 -
[ZT]ubuntu下比较好的一些软件
这篇文章是写给新手看的,其实我也是个新手,只不过喜欢折腾。很多人都不喜欢命令行,这成为linux入门的一个困难。但是ubuntu的易用性还是有目共睹的,下面列出的软件我都用过,功能不错,可以帮助你完成常见任务,而不必使用命令行。0、Ubuntu默认安装的软件(功能已经很强大,请自己去熟悉,不必我多说);1、阅读pdf的软件,我用AdobeReader_chs-8.1.3-1.i386.deb,这个原创 2009-05-03 09:48:00 · 3024 阅读 · 0 评论 -
在Ubuntu下FireFox中Flash乱码的解决办法
其实很简单,在8.04下,如下即可解决:因为字体设置的问题,导致Flash插件在显示中文时全显示为方框。解决方法也很简单。按下ALT-F2,输入gksu nautilus,点击"运行"。到/etc/fonts/conf.d/下,删除49-sansserif.conf,就搞定了。删掉后重新启动FireFox即可。。。原创 2009-04-30 08:44:00 · 636 阅读 · 0 评论 -
ubuntu 8.04卸载shockwave flash插件
刚刚使用firefox时,上优酷网时,需要安装flash插件,当时系统提供了三个插件,当时我选择了shockwave flash,结果安装后,很多网页显示都有问题,为了删除,上网搜索了很久,方法如下:sudo apt-get remove swfdec-mozillasudo apt-get remove libswfdec-0.6-90 再安装adobe flash插件,如下:s原创 2009-04-29 22:27:00 · 2511 阅读 · 0 评论 -
ubuntu 8.04更新源
备份一下源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup使用编辑器打开sudo gedit /etc/apt/sources.list刷新sudo apt-get update ################bitunion###############deb http://mirr原创 2009-04-27 23:47:00 · 2368 阅读 · 0 评论