
Linux相关
tietao
一切,都会云淡风轻的过去。
只为,心中不变的追求。
展开
-
Ubuntu 14.04 Desktop的Raid1安装总结
安装基于Ubuntu14.04 Desktop的Raid1。由于采用UEFI/GPT方式作为系统启动方式,在安装过程中出现了很多异常情况。本文记录安装的过程。原创 2016-01-21 20:35:04 · 19324 阅读 · 5 评论 -
vi配置文件,
在用vi编程时,如果不配置,会感觉会不舒服。tab键的格数,背景色,这样会让看起来舒服些,用起来也方便些。这里转发一个vi的配置文件,可以复制到.vimrc文件,如果是usr放到/home/username/.vimrc 如果是root则放到/etc/v转载 2011-10-11 13:13:19 · 22246 阅读 · 2 评论 -
sqlite3 安装和基本指令
sqlite3 安装和基本指令安装 $ tar zxvf sqlite-3.3.5.tar.gz $ cd sqlite-3.3.5 $ ./configure --disable-tcl --prefix=/usr/loca转载 2011-10-12 12:59:50 · 1109 阅读 · 0 评论 -
opencv(arm移植总结)
之前写了一个自己当时的操作流程,偶然看到一个当时自己移植opencv的总结,当时用了一个月才弄明白怎么回事,这里放到这里,一是保留,也希望其他人能在这里节省时间。嵌入式ARM系统中安装这里使用的是Opencv1.0.0版。首先说明这里之原创 2011-10-18 20:16:39 · 10429 阅读 · 3 评论 -
arm-linux串口接收出错
在一帧数据的接收中,一帧数据,会被分两次接收,如下:第一次接收一部分,第二次接收一部分;recv data from downline: 0x66 0x17 0x0 0xc1 0x0 0x1 0x0 0x0 0x0 0x0 0x11 0x1 0x0 0x0 0x1 0x41 0x33 0x0 0x1 0x0原创 2011-12-31 21:50:41 · 3302 阅读 · 0 评论 -
关于malloc的一点理解
在函数中使用malloc,如果是大的内存分配,而且malloc与free的次数也不是特别频繁,使用malloc与free是比较合适的,但是如果内存分配比较小,而且次数特别频繁,那么使用malloc与free就有些不太合适了。因为过多的malloc与free容易造成内存碎片,致使可使用的堆内存变小。尤其是在对单片机等没有MMU的芯片编程时,慎用malloc与free。原创 2012-03-11 11:17:01 · 2207 阅读 · 0 评论 -
(Linux多线程编程(不限Linux))多线程操作
过去对于进程和线程的理解一直就不清楚,马上要用到多线程和进程,这里转载一篇博客,感觉挺有用的,介绍了大部分线程的东西希望有用。Linux多线程编程(不限Linux)2010-10-30 20:58 by 吴秦, 20765 visits, 收藏,转载 2011-09-23 14:04:30 · 2243 阅读 · 1 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多转载 2011-09-23 14:08:43 · 1521 阅读 · 0 评论 -
关于信号量sem_wait的整理(转)
SYNOPSIS #include int sem_init(sem_t *sem, int pshared, unsigned int value);//初始化信号量 int sem_wait(sem_t * sem);转载 2011-09-27 11:16:14 · 3851 阅读 · 0 评论 -
关于ubuntu下,7z的基本使用(备忘)解压rar格式
7zsudo apt-get install p7zipcommand 为操作指令,如下:a 添加到压缩文件b 基准测试,测试 7z 当前性能d 从压缩文件中删除e 从压缩文件中解压缩,但不包含目录结构(即所有各级文件都解压到一个目录里)l 列出压缩文件的内容t 测试压缩文件u 更新文件到压缩文件x 从压缩文件中解压缩,包含目录结构可见,最常用的指令是转载 2012-03-24 23:41:24 · 2194 阅读 · 0 评论 -
多线程的函数总结
多线程由轻进程(Light Weight Process)分配,(轻进程 :内核线程介于用户层和系统层之间,线程的资源分配与控制通关过轻进程实现)进程,轻进程(LWP),线程。初始化的函数为pthread_attr_init(),在pthread_crea原创 2011-10-09 22:40:11 · 1040 阅读 · 0 评论 -
linux下程序运行时间的获取方法,
linux下程序运行时间的获取方法,1.有时候我们要计算程序执行的时间.比如我们要对算法进行时间分析 ..这个时候可以使用下面这个函数. #include int gettimeofday(struct timeval *tv,struct t原创 2011-10-19 11:53:21 · 5587 阅读 · 4 评论 -
Linux自动开机时启动应用程序
在放寒假前自己在ARM板上设置了一个自动启动的应用程序,结果当来到学校后想要再给取消,却发现自己忘了当时是怎样操作的,但记得是修改了一个文件。无奈只好再次上百度了。搜索后看到一个profile字样想起来了,当时修改的就是这个文件。却不知道这个文件在哪里,又是百度了。 后发现其实就在根目录的etc下,找到它就好说了。又可以按着自己的意愿来执行了。同时额外也收获了一些,并不是自己以前理解的那样原创 2011-02-13 20:54:00 · 8369 阅读 · 0 评论 -
Ubuntu进入root权限命令——sudo和su命令详解(这里再转载一个详细介绍的)
Ubuntu进入root权限命令——sudo和su命令详解ubuntu用户管理sudo意思就是super-user do,让当前用户暂时以管理员的身份root来执行这条命令。su是用来改变当前用户的,su root,就是将当转载 2011-10-04 10:51:44 · 27851 阅读 · 0 评论 -
sem_wait sem_post信号量操作进本函数
sem_wait sem_post信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为: extern int sem_init __P ((sem_t *__sem, int __psha转载 2011-09-27 11:13:28 · 58884 阅读 · 0 评论 -
线程同步(互斥锁与信号量的作用与区别)
“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信转载 2012-03-19 10:38:10 · 49762 阅读 · 2 评论 -
Linux expr用法
转自:http://blog.163.com/panfeng_pf/blog/static/1119608542009212423455/非原创, 摘自:《LINUX与UNIX Shell编程指南》17.5 expr用法expr命令一般用于整数值,但也可用于字符串。一般格式为:expr argument operator argumentexpr也是一个手工命令转载 2012-04-11 15:09:49 · 1000 阅读 · 0 评论 -
free函数的纠结
昨天想要将ARM9板上flash中的jpg图片显示在tft上,在改写一个函数时,使用malloc函数分配了一段内存,来存储我读取的图片内容,在显示到tft上后,调用free函数释放,结果发现总会出现segmentation fault。一直不理解原因出现在哪里,代码如下static void show_pic_jpg(void *scr){__u16 x, y, w, h, i, f;__u16 *fb_buf = (__u16 *)scr;__u32 rgb_data;__u16 *p原创 2011-03-16 09:27:00 · 957 阅读 · 0 评论 -
vi 技巧和诀窍:令人刮目相看的 10 个超酷命令
Martin Wicks, 711 Consultancy Limited http://www.ibm.com/developerworks/cn/aix/library/au-vitips.html(原文地址)在使用vi 编辑器时 — 无论是初次使用的用户,还是有经验的用户 — 大多数人往往只掌握核心命令集,这些命令可以执行最常用的功能:导航或保存文件;插入、更新、删除或搜索数据;退出但不保存修改。 但是,vi 编辑器极其强大,特性和功能非常丰富。即使在多年使用 vi 之后,您仍然可能会发现有不知道的新转载 2011-02-13 21:05:00 · 922 阅读 · 0 评论 -
ubuntu /etc/profile和/etc/environment的比较
转自:http://blog.youkuaiyun.com/teamlet/article/details/8257853先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile 中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。转载 2014-08-05 21:41:32 · 2144 阅读 · 2 评论 -
socket的recv和send带来的疑惑
昨天在测试socket的传输时,发现有时候recv会会返回接收字节的长度为0,开始没有在意,但是过了一会系统重启了。这样一来带来的麻烦就大了。因为发现每次系统重启时,都在send函数附近,为了验证在send时系统重启,于是在send函数前后各加了一个打印输出,发现每次都是在第一个打印有输出,第二个没有。于是猜测是send时,阻塞导致给看门狗喂狗的线程没有切换执行,造成了系统复位重启。原创 2012-10-25 16:03:42 · 7595 阅读 · 2 评论 -
用GDB调试程序
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:转载 2012-03-19 15:00:46 · 1385 阅读 · 0 评论 -
linux多线程之同步
[条件变量]线程同步,资源加锁,线程间信号量。各自的使用。在项目中,多线程运行时,开始线程间同步没有使用,只是使用一个变量判断是否另一个线程已经初始化完本线程需要的资源,然后本线程运行,但是这样总感觉不是很合适,在一个线程的循环中不断判断条件成立,造成一些不必要的资源浪费,如果此时阻塞会节省CPU的资源(虽然并不是很多)。开始时使用的是互斥锁,因为没有使用条原创 2012-04-12 21:25:48 · 1154 阅读 · 0 评论 -
关于GPRS的数据接收
因为使用GPRS进行数据的一些传输,在使用时总发现有些不是十分稳定。以至于在修改时,都改到串口的读取上了(见《串口的初始化配置》),但是GPRS这里的问题还是没有得到真正解决。以下关于GPRS的一些问题基于使用的是SIM900A模块的基础上。主要遇到的问题:首先是GPRS的连接时有时候会掉线,而且这个分时段,有时候很好,有时候就连不上。其次是GPRS在发送数据的过程原创 2012-04-24 12:08:59 · 11675 阅读 · 21 评论 -
设置samba共享文件写入权限(备忘)
Linux系统:Fedora 10 前两天,需要在虚拟机中使用的Fedora10系统下建立一个文件共享方便与Windows文件交换,开始查到有SFU,和samba,SFU第一次听说,samba以前知道,但是一直没有自己设置过。 首先试了一下SFU,在网上有它的安装介绍,但是发现在安了一半的时候提示缺少什么东西,于是就不能安装了。后来换了台电脑,试着安装发现有同样的问题。于是决定放弃原创 2012-04-29 21:11:42 · 15073 阅读 · 0 评论 -
关于编译时时钟错误的问题
今天在VM中的linux下编译时有蹦出一个因为您的时钟错误,可能造成您的编译不完整。有时候自己的电脑异常死机后,时钟总会错误,在编译时,不免会出现这样的提示。因为文件的创建时间,早于系统时间,不免会报错。咱总不能未卜先知吧!此时警告也是情有可原。想起来第一次出现这样的错误时,手忙脚乱的情景,不免想笑。当时以为代码错了,但是没有改动过。问题出在哪里,还是不明白,后来百度后,虽然知道如何避免,原创 2011-11-30 20:52:16 · 2220 阅读 · 0 评论 -
ubuntu11.10编译gdb难解的心结
本来想今晚把gdb-7.0.1早点编译完,做些。因为之前自己已经在fedroa10上编译过7.3很顺利,没有遇到什么问题,tar之后就是make,再接着make install很快结束了。但是没想到却花费了自己一晚上的时间。才将其编译完成。一开始就碰上-werror这个错误,就是存在定义了但是没有使用的变量。据说在gcc4.2以前的版本中,是没有默认这个的。是在gcc4.3以后才有的。于是自己原创 2011-12-30 13:23:06 · 1806 阅读 · 0 评论 -
进程间通信——信号量、互斥锁等的异同
进程间通信——信号量、互斥锁等的异同最早接触在系统上编程,是在嵌入式Linux上完成几项功能。当时就是按照写单片机程序的思维写的。实现几个功能,就用了一个进程,单线程来做。后来实习时,接触Linux下多进程,多线程的编程。了解到多个线程之间的操作需要进行同步,互斥等。在工作后,有进行了uCOS的多任务编程。发现uCOS中的多任务的同步,互斥与Linux下有很多相似性。但原创 2014-01-14 23:39:07 · 11693 阅读 · 0 评论 -
TCP/IP及socket通信概览
网络字节序与主机字节序主机字节序就是我们平常说的大端和小端模式:不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫做主机序。引用标准的Big-Endian和Little-Endian的定义如下: a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 b) Big-Endian就是高位字节排放在内存的低地址端,低位原创 2013-02-28 19:20:49 · 1124 阅读 · 0 评论 -
由初始化开始
今天调整一段初始化代码,将其参数设置及其功能看完,并调整后。想到以前因为初始化时漏掉一些参数设置,导致的程序调试,总结一点如下。 关于硬件初始化操作,要仔细看其手册,根据手册的描述设置相应参数。这里需要对使用的硬件功能,以及其相应参数设置。根据需求设置相应参数,硬件实现其要求的功能。 如此理解:这些功能(实现)是已经存在的,现在需要了解的,就是怎样将这些功能表现出来。而这里参数的设原创 2012-03-19 20:37:02 · 951 阅读 · 0 评论 -
,函数调用问题
得到错误数据的语句1、 if((p_head == NULL) && (ReadAllData(p_head, sqlitedb, p_valuetime) != 0)) { printf_str_int(__func__, __LINE__); Error_ReadAllData(p_head, sqlitedb, p_valuetime);原创 2012-03-11 11:06:08 · 795 阅读 · 0 评论 -
linux支持的信号,及使用注意的一点
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM原创 2012-03-11 11:16:08 · 873 阅读 · 0 评论 -
FC10vim中 ctags+taglist+cscope的安装以及常用快捷键
先将ctags更新到最新版本:yum install ctags yum install ctags 现在我们到http://www.vim.org/scripts/script.php?script_id=273 下载最新版本的taglist plugin,目前版本是4.3。在Fedora10和Ubuntu9.10里没找到这转载 2012-03-09 14:32:31 · 3436 阅读 · 0 评论 -
线程编程问题,
线程错误一:问题:在线程间的传递参数时,指针会造成数据丢失,只能值传递。这里不是不能访问另一线程内存的问题,而是传递到另一线程时,指针保存的地址发生了变化,已经不是原来的地址。这是出问题根本。方法:这时可以找一个非指针类型的变量(无符号整形)保存本线程的指针地址,在另一个线程中使用强制类型转换来读取内存中的内容。但是要注意本线程是否会修改指针指向的的内存,如果有可能,则需要原创 2012-02-17 12:08:56 · 1317 阅读 · 0 评论 -
Linux下安装Google拼音输入法
CentOS 5中自带输入法平台的是SCIM,Fedora 10以后自带的是iBUS,但是使用起来还是没有sogou,谷歌输入法舒服。本文以CentOS 5.5为例,介绍SCIM-GooglePinyin的安装全过程。SCIM-GooglePinyin 项目试图将 Android 上的 Google 拼音输入法移植到 GNU/Linux 平台。SCIM-GooglePinyin 基于转载 2012-02-23 10:41:06 · 13646 阅读 · 0 评论 -
对于结构体变量赋值的误区
以前在使用结构体时没有在结构体变量之间直接赋值,今天同事在查看别人的代码时,发现有两个结构体变量直接赋值的语句当时感觉这个语句不对,认为在一个结构体里边,既有一般的无符号整形与数组,因为数组的赋值是不能直接赋值,要内存拷贝,从这里推理所以认为这个语句不对。于是问了一下,我当时以为是结构体指针变量的赋值,认为没有问题。还和同事争论了一番,当他让我看源代码时,发现是变量间的直接赋值,下意识中的判断是不原创 2012-02-14 13:42:15 · 71197 阅读 · 4 评论 -
自动生成Makefile时,关于Makefile.am编写
最近编译一个项目的程序时,二十几个源代码文件放在六个文件夹中,而且各个文件中头文件互相包含。以前写过编译这样组织的源码的makefile,所以这次也就直接写了。确实因为各个文件间的头文件互相包含,造成在第一次写完后,make时出现了很多未定义。于是把各个文件的头文件重新检查一边,同时载makefile中尽量按照相对路径,把所有的头文件都包含进来。终于在忙活了三个小时后,一个可以在自己机器上编译原创 2011-12-08 16:07:01 · 3288 阅读 · 2 评论 -
ubuntu 的管理员切换
以前使用redhat,后来同学介绍使用了ubuntu。一是想经常用,而是为以后开发做准备。安装上之后,发现ubuntu一些东西和redhat不太一样。尤其是管理员权限上,以前都是直接在root权限下操作,结果在ubuntu上,刚进去怎么都切不到管理员权限,纠结原创 2011-10-04 10:50:17 · 13276 阅读 · 0 评论 -
Gdb调试简要介绍
Gdb调试器调试是所有程序员都会面临的问题。如何提高程序员的调试效率,更好更快地定位程序中的问题从而加快程序开发的进度,是大家共同面对的。就如读者熟知的Windows下的一些调试工具,如VC自带的如设置断点、单步跟踪等,都受到了广大用户的赞赏。那么,在Linux下有什么很好的转载 2011-09-23 13:50:33 · 1423 阅读 · 0 评论 -
Makefile的简要介绍,
到此为止,读者已经了解了如何在Linux下使用编辑器编写代码,如何使用Gcc把代码编译成可执行文件,还学习了如何使用Gdb来调试程序,那么,所有的工作看似已经完成了,为什么还需要Make这个工程管理器呢?所谓工程管理器,顾名思义,是指管理较多的文件的。读者可以试想一下,有一个转载 2011-09-23 13:48:38 · 969 阅读 · 0 评论