Linux
David_xtd
这个作者很懒,什么都没留下…
展开
-
浅析 Linux 中的时间编程和实现原理,第 2 部分: 硬件和 GLibC 库的细节
引子熟悉了基本的编程方法之后,我们的兴趣就在于,计算机如何实现这一切的呢?在那些应用层 API 和底层系统硬件之间,操作系统和库函数究竟做了些什么?首先看下 Linux 时间处理的一般过程:图 1. 时间处理过程应用程序部分已经在第一部分详细介绍过了,在第二部分我将介绍硬件和 GlibC 相关实现的一些概况。回页首硬件PC 机转载 2014-08-27 11:09:39 · 1087 阅读 · 0 评论 -
在ubuntu下如何验证文件的MD5码
在windows下可以使用专用的工具软件如WinMD5等来查看文件的MD5码,在ubuntu下通过命令行来查一样很方便:md5sum file,就可以得到文件的MD5码了。若要跟校验码文件比对,假设 file.iso 和校验码文件 file.iso.md5 是在相同目录下,执行md5sum -c file.iso.md5原创 2012-06-07 14:17:06 · 11667 阅读 · 0 评论 -
用nmap获取ip和mac地址
在windows下有lansee和Advanced IP scanner来查找IP和对应的MAC地址,在ubuntu中,好用的工具似乎不多,nmap命令行工具倒是提供了强大的功能。可以使用命令来获取ip和mac地址:sudo nmap -sP -PI -PT -oN 192.168.1.0/24 > ipscan.txt-sP 通过ping方式发现扫描网络存活主机;原创 2012-06-11 15:45:05 · 17134 阅读 · 3 评论 -
chmod分别设置子目录和文件不同权限
要求就是:1、将当前目录中的所有“子目录”的权限设置为755;2、将当前目录中的所有“文件”的权限设置为644。解决方法:chmod 644 -R *chmod 755 `find -type d`也可以用:用find彻底些find /path -type f -exec chmod 644 {} /;find /path -type d -exec chm转载 2013-05-29 09:50:01 · 4942 阅读 · 1 评论 -
错误:/usr/lib/python2.4/site-packages/_sqlitecache.so: wrong ELF class: ELFCLASS32
问题:在CentOS 5.5中需要使用yum安装程序,出现错误:There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was:/usr/lib/python2.4/site-packages/_sqlitecach原创 2013-03-06 18:33:35 · 11858 阅读 · 0 评论 -
yum Error: Cannot retrieve repository metadata (repomd.xml) for repository: xxxxx
问题:使用如下命令从头重建yum的库,但是仍然出现错误:[root@centos-74 ~]# yum clean all...Cleaning up EverythingCleaning up list of fastest mirrors[root@centos-74 ~]# rm -f /var/lib/rpm/__db*[root@centos-74 ~]# rpm原创 2013-03-07 10:34:09 · 74969 阅读 · 10 评论 -
【IPC通信】key_t键和ftok函数
System V IPC分为三种:System V消息队列System V信号量System V共享内存区这三种类型的IPC使用key_t值做为它们的名字。key_t这个数据类型在有定义,通常是一个至少32位的整数。我们通常使用ftok()函数(可以如此记忆:file to key)把一个已存在的路径名和一个整数标识符转换成一个key_t值,称为IPC键。转载 2013-06-21 16:15:41 · 1775 阅读 · 0 评论 -
Linux中查看进程的多线程
在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢?本文介绍3种命令来查看Linux系统中的线程(LWP)的情况:在我的系统中,用qemu-system-x86_64命令启动了一个SMP的Guest,所以有几个qemu的线程,以此为例来说明。1. pstree 命令,查看进程和线程的树形结构关系。View Code B转载 2013-07-02 09:44:32 · 2362 阅读 · 0 评论 -
关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总
32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样): linux64 windows64 linux32 windows32char 8转载 2013-07-04 10:36:44 · 3628 阅读 · 0 评论 -
ubuntu下minicom不能接受键盘输入
曾经使用设定Ctrl-A -> O -> Serial Port Setup -> Hardware flow control,检查Hardware flow已经为No但是,minicom还是不能接受键盘输入逐一检查minicom的选项,发现有个Local Echo on/off似乎对键盘输入有影响,于是Ctrl-A -> Z -> E,再试,发现minicom可以接受键盘输入原创 2012-06-11 13:22:43 · 12285 阅读 · 0 评论 -
使用pthread_create时参数的传递
问题:使用pthread_create()函数创建线程的时候,需要将一个类型为u8(unsigned char)的变量作为参数传送到线程函数void turnon_RelaySameTime(void *relayState)中;要传递的变量:u8 ss_relay;创建线程:retval = pthread_create(&relayOn_thread, &att原创 2012-09-10 10:06:38 · 4657 阅读 · 1 评论 -
用split和cat分割和恢复文件
在向SVN的库中提交文件的过程中,遇到有大文件的情况,本例中差不多是200M多一点儿的样子,这样commit的过程非常漫长,中间看不到任务进度条等动态提示的信息。一开始,想利用一个晚上的时间总可以把文件上传上去了,但是,第二天到单位一看,竟然是提示commit failed。原因是timeout。所以,考虑将打文件分割成多个小文件上传,使用的时候,下载后再恢复到源文件的形式;din原创 2012-06-13 13:41:05 · 3809 阅读 · 0 评论 -
nfs: server 192.168.37.200 not responding, still trying的解决办法
问题:1. 想用NFS加载根文件系统到目标板,以对根文件系统进行调试。但是,主机配置好NFS的服务之后,通过# sudo mount -t nfs localhost:/nfsroot/root-pdu-422 /mnt# ls /mnt可以看到root-pdu-422中的内容,说明nfs服务器已经设置好了。2. 之前的系统曾经很顺利地通过nfs方式挂载根文件系统成功,现在原创 2012-08-17 18:56:58 · 1745 阅读 · 0 评论 -
文件编译时出现multiple definition of `xxxxxx'的解决办法
问题:原来有单个文件tcpclient.c,运行gcc -o tcpclient tcpclient.c可以顺利完成编译,并能与下载到目标板中的tcpserver成功通讯;现在把tcpclient.c中的底层通讯部分抽取出来,单独放到一个文件中nettrans.c中,并有netrans.h作为头文件;然后,使用命令gcc -o tcpclient nettrans.c tcpc原创 2012-07-26 18:17:15 · 37065 阅读 · 1 评论 -
ubuntu之安装(Gnome和KDE)
这几日,突然想试试linux!想想linux的版本,的确是多如牛毛!听说每五秒钟世界上就会产生一个linux系统。现在在中国比较流行的有fedra core 、Red Hat Enterprise Linux、ubuntu。还有我昨晚在图书馆的linux宝典中看到的KNOPPIX了!(据说它是一款可以把系统装在移动硬盘和光盘中的,随时从盘中启动,可以应急电脑的突发事故救急,有时间我一定的练练手)转载 2012-07-04 09:38:07 · 1725 阅读 · 0 评论 -
Linux网络编程之connect函数分析
在一个 CLIENT/SERVER模型的网络应用中,客户端的调用序列大致如下: socket -> connect -> recv/send -> close 其中socket没有什么可疑问的,主要是创建一个套接字用于与服务端交换数据,并且通常它会迅速返回,此时并没有数据通过网卡发送出去,而紧随其后的connect函数则会产生网络数据的发送,TCP的三次握手也正转载 2013-02-05 11:09:02 · 1181 阅读 · 0 评论 -
由编译错误看-L. -lxxxx的正确位置
问题:在研究一个问题时,碰到了新的问题。知道了-L. -lmyhello的正确放置位置。要研究的问题是:除了-static参数之外,使用静态库和使用动态库编译成目标程序使用的gcc命令完全一样,那当动态库和静态库同名时,gcc命令会优先使用哪个库?研究的范围在lib_test目录下有如下的文件:dingq@wd-u1110:~/wrk/tmp/lib_test$ lltota原创 2012-07-31 14:52:02 · 2129 阅读 · 0 评论 -
错误解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
前提:ubuntu-debug机器上向SVN提交了pdu-IVT,想在别的普通机器上验证直接make能否成功,编译出的用户程序能否运行。工作PC机上装有VMware,里面的ubuntu版本跟ubuntu-debug机器上相同,都是ubuntu 11.10版本。VMware的家目录下有个目录pdu-IVT,是从SVN上更新出来之后,直接拷贝过来的。在将ubuntu-deb原创 2012-06-02 12:02:00 · 129219 阅读 · 1 评论 -
ubuntu 11.10 安装小企鹅fcitx输入法
fcitx与scim输入法有冲突,安装之前首先确认scim是否安装,如果安装了scim,就先卸载scim。 sudo apt-get purge scim然后开始安装fcitx: sudo add-apt-repository ppa:fcitx-team/nightlysudo apt-get updatesudo apt-get inst转载 2012-06-28 09:59:42 · 1161 阅读 · 0 评论 -
linux 自动执行 crontab学习笔记
在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。以某一频率执行任务linux缺省会启动crond进程,crond进程不需要用户启动、关闭。 crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。 cron的调度文件有以下几个: crontab cron.d cron.daily cron.hourly cron.转载 2013-08-09 14:47:45 · 1239 阅读 · 0 评论 -
在 Ubuntu 9.10 Server 上安装 Nginx 0.8.34
Nginx 在 3 月 3 日放出了 0.8.34 这个开发版。张宴也随即更新了《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器》到第六版。不过,他写的记录是针对 CentOS、Redhat 等 rpm 包管理的服务器。由于习惯了 debian 系列的服务器,特别是用惯了 ubuntu 服务器,在这里特别做一下 Ubuntu 9.10 下的转载 2013-02-16 15:26:38 · 986 阅读 · 0 评论 -
ckermit还是gkermit?
问题:解决办法:原创 2014-05-16 10:50:46 · 2558 阅读 · 0 评论 -
diff和patch使用指南
diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。 diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当转载 2014-05-10 16:19:02 · 1599 阅读 · 0 评论 -
Linux分区方案、文件结构与挂载
Linux的所有分区都可以位于逻辑分区中。所以,不要再被这些老旧的教程所误导了,不要再浪费有限的主分区了,放心地把Linux安装在逻辑分区中吧。AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统对大家分析叙述Linux分区建议之前,大家必须掌握下Linux的文件结构,然后对Linux分区建议全面讲述,Linux是由开发工具软件、编辑器软件、C转载 2014-05-20 16:45:11 · 1156 阅读 · 0 评论 -
Linux内核配置与编译
1.内核配置 编译内核之前要先配置。为了正确、合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,主要有以下4个方面需要考虑。 ● 尺寸小。自己定制内核可以使代码尺寸减小,运行将会更快。 ● 节省内存。由于内核部分代码永远占用物理内存,定制内核可以使系统拥有更多的可用物理内存。 ● 减少漏洞。不需要的功能编译进入内核可能会增加被系统攻击者利用转载 2014-05-21 19:19:15 · 3877 阅读 · 0 评论 -
Ubuntu 12.04新装后启动时长时间停留在开机画面的解决办法
问题:解决办法:原创 2014-05-20 20:03:27 · 24343 阅读 · 0 评论 -
shell中的"2>&1"是什么意思?
问题:解决办法:原创 2014-05-30 10:54:14 · 10164 阅读 · 0 评论 -
openSUSE 13.1 更换国内源
最近准备戒dota,于是把自己的笔记本装成了opensuse,用的最新版本13.1。用的官方源,每次安装和更新都跟乌龟一样。于是就想到更换的国内的源,速度果然快了很多。操作办法如下: 首先要禁用官方源和DVD光盘源,启用国内源 使用DVD光盘安装好openSUSE 13.1之后,软件安装源中默认存在一个名称为"openSUSE-13.1-1.10转载 2014-08-21 09:25:44 · 14881 阅读 · 0 评论 -
浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程
原文地址:http://www.ibm.com/developerworks/cn/linux/1307_liuming_linuxtime1/转载 2014-08-27 14:47:54 · 1207 阅读 · 0 评论 -
C语言中获取文件大小的函数
问题:解决办法:原创 2014-05-14 20:21:13 · 9318 阅读 · 0 评论 -
Linux目录结构
本文汇总了一下Linux文件系统的目录结构,简明介绍了常见的Linux不同目录的用途。汇总:/根目录。所有的文件和目录皆由此开始,即万物皆出于此。只有root用户对根目录拥有写权限。/root系统管理员目录。对于系统来说,系统管理员就是上帝,因此,系统管理员能对系统做任何事情,甚至包括删除整个文件系统。所以,请小心使用root帐号。/bin包原创 2014-02-03 15:56:19 · 976 阅读 · 0 评论 -
ubuntu下配置tftp服务以及开发板中通过tftp下载文件
配置tftp服务的步骤: 1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd2、建立配置文件(蓝色的目录是可以更改为其他地址的,例如/home/user/tftpboot) 在/etc/xinetd.d/下建立一个配置文件tftp sudo vi tftp 在文件中输入以下转载 2012-02-14 13:20:13 · 5404 阅读 · 0 评论 -
rsync: failed to connect to X.X.X.X: No route to host (113)
rsync: failed to connect to X.X.X.X: No route to host (113) 故障原因:对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。 解决方法:关闭防火墙,或者把防火墙的tcp udp 的873端口打开,允许rsync通过。 实施方案: 1、防火墙的启动与停止 # service iptab转载 2013-10-15 14:16:04 · 17374 阅读 · 1 评论 -
Linux系统各个目录的一般作用
对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦。所以,在这里讲一下linux下的主要目录以及它们都是用来干什么的。 / This is the root directory. The mothership. The home field. The one and only t转载 2014-02-02 22:05:12 · 1128 阅读 · 0 评论 -
thttpd安装与调试
http://www.acme.com/software/thttpd/thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图+Benchmark,可以参考参考。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派转载 2014-02-04 22:01:44 · 2135 阅读 · 0 评论 -
三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
国内绝大部分的web server不是IIS就是Apache,而论市场占有率,我认为Apache是大赢家了,至少是占据了半壁江山。但除了IIS/Apache外,其实我们有很多选择,对于高负载/大并发的网站而言,高性能、轻量级的web server是一剂良药。最近手头一台Server 的负载太高,居然将swap吃光导致机器非常缓慢,后来一查,原来是Apache耗掉了几乎所有资源,当时apac转载 2014-02-05 17:15:46 · 2124 阅读 · 0 评论 -
ubuntu 11.10中安装配置lighttpd
本人所用笔记本电脑配置较低,想在笔记本电脑中安装一个轻量级web服务器。在轻量级web服务器中,有lighttpd、thttpd和shttpd。1. thttpd最新版为2.25b,为20031203发布的版本,之前在嵌入式设备中使用的就是这个服务器。在单位的ubuntu 12.04上也成功安装了,但在家里的ubuntu 11.10上死活安装不上。不管是sudo apt-get原创 2014-02-05 22:31:55 · 3929 阅读 · 0 评论 -
关于pthread_mutex_t的初始化
class MyLock{private: pthread_mutex_t m_lock;public: MyLock() {// m_lock = PTHREAD_MUTEX_INITIALIZER; //使用这种方法初始化时GCC编译无法通过 pthread_mutex_init(&m_lock,NULL);转载 2014-02-07 09:29:43 · 14515 阅读 · 0 评论 -
JDK Required: 'tools.jar' seems to be not in IDEA classpath解决办法
问题:下载了IntelliJ IDEA的安装包ideaIC-13.0.2.tar.gz,放到/opt目录,解压tar xvf ideaIC-13.0.2.tar.gz运行程序:cd /opt/idea-IC-133.696/bin./idea.sh &提示出错信息:u1204@u1204-zhw:/opt/idea-ID-133.696/bin$ JDK Required:原创 2014-02-11 13:40:58 · 24273 阅读 · 1 评论 -
Linux:time
Table of Contents1 时间类型。2 时间操作3 延时函数1 时间类型。Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,struct tm。time_t是一个长整型,一般用来表示用1970年以来的秒数。truct timeval有两个成员,一个是秒,一个是微妙。 st转载 2012-09-05 15:05:38 · 1163 阅读 · 0 评论