linux
文章平均质量分 86
youngyang525
努力学习!!!
展开
-
linux安装迅雷
平时喜欢在linux下玩玩,于是给电脑安装了Ubuntu系统,基本上常用的软件都能zha原创 2014-06-09 20:58:40 · 4574 阅读 · 0 评论 -
linux进程(二)
1 linux进程概述进程简单的说就是一个程序一次执行的过程,它是一个动态的概念。按照教科书上的定义,进程是程序执行的实例,是linux的基本调度单位。 对于程序员来说,最重要的就是要区分进程和程序的区别,程序是指一段完成功能的代码,或者说是一个工具,它是一个静态的概念,而进程,它是动态的,比如,linux的vi编辑器,它就是一段在linux下用于文本编辑的工具,那么它是一个程序,而我原创 2015-04-24 09:17:07 · 649 阅读 · 1 评论 -
Linux下./configure参数详解
'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍:'--cache-file=FILE''config原创 2015-04-29 14:01:26 · 574 阅读 · 1 评论 -
C通过unixODBC连接数据库
首先进程数据库的相关配置,主要是修改/etc/odbcinst.ini和/etc/odbc.ini两个文件。(这是它们的默认位置,有时也可能在/usr/local/etc/或者/usr/local/unixODBC/etc/,这个和你安装的unixODBC位置有关)odbcinst.ini(配置驱动)点击(此处)折叠或打开[mysql]Driver=/usr原创 2015-04-30 09:59:46 · 3543 阅读 · 3 评论 -
通过unixODBC访问PostgreSQL数据库
步骤1,先安装PostgreSQL具体不详述,参考PostgreSQL的官方文档或下载、解压后的INSTALL文件中的指令即可运行configure时指定安装目录:./configure --prefix=/usr/local/pgsql我安装的是 PostgreSQL9.1.2 步骤2,再安装unixODBC下载 unixODBC-2.3.1.ta转载 2015-04-30 10:04:31 · 2106 阅读 · 1 评论 -
unixODBC连接MS SqlServer2005
一、下载相关软件 unixODBC、freetds (1) Linux系统的ODBC unixODBC-2.2.8.tar.gz ( http://www.unixodbc.org) (2) 连接SQLServer或Sybase的驱动 freetds-0.62.4.tar.gz ( http://www.freetds.org)二、转载 2015-04-30 10:11:08 · 669 阅读 · 1 评论 -
使用unixodbc连接 ORACLE数据库的配置方法
1. 下载最新版的unixodbc并安装。2. 下载oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm 安装。将/usr/lib/oracle/11.2/client/lib/ 拷贝到/usr/lib/中执行ldc转载 2015-04-30 10:11:54 · 1675 阅读 · 1 评论 -
unixodbc 连接mysql数据库
1:先安装unixodbc --建议用源码点击(此处)折叠或打开./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etcmakemake install其它一些参数转载 2015-04-30 10:05:35 · 1379 阅读 · 1 评论 -
linux中线程如何退出
在Linux中,默认情况下是在一个线程被创建后,必须使用此函数对创建的线程进行资源回收,但是可以设置Threads attributes来设置当一个线程结束时,直接回收此线程所占用的系统资源,详细资料查看Threads attributes。其实在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统调用copy了一个和原先进程完全一样的进程,并在翻译 2015-08-07 16:44:29 · 4435 阅读 · 1 评论 -
arm-linux-gdb、gdbserver的编译安装
下载gdb-7.5.tar.gz(http://www.gnu.org/software/gdb/download/)解压gdb-7.10.tar.gztar -zxvf gdb-7.10.tar.gz编译arm-linux-gdbcd gdb-7.10$./configure --target=arm-linux --prefix=/opt/FriendlyARM/t原创 2015-09-08 09:54:53 · 2675 阅读 · 2 评论 -
socat使用笔记
ubuntu下安装:sudo apt-get install socat1、串口转发socat udp4-listen:11161,reuseaddr,fork UDP:[监控服务器IP]:161udp4-listen:在本地建立的是一个udp ipv4协议的监听端口;reuseaddr,绑定本地一个端口;fork,设定多链接模式,即当一个链接被建立后,自动复制一个原创 2015-11-11 16:32:12 · 12563 阅读 · 1 评论 -
20个你可能不知道的 Linux 网络工具
如果要在你的系统上监控网络,那么使用命令行工具是非常实用的,并且对于 Linux 用户来说,有着许许多多现成的工具可以使用,如: nethogs, ntopng, nload, iftop, iptraf, bmon, slurm, tcptrack, cbm, netwatch, collectl, trafshow, cacti, etherape, ipband, jnettop, netspeed 以及 speedometer。转载 2015-10-14 13:16:47 · 663 阅读 · 1 评论 -
Mosquitto-Ubuntu 14.04快速安装问题解决
Mosquitto是一个轻量级的MQTT Broker,支持很多种系统。下载与安装:http://mosquitto.org/download/注意:由于客户端paho工程进展较快,目前需要使用最新的3.1.1版本的mqosuitto服务器才能连接,因此用Ubuntu内置库的mosquitto将无法正常访问。我就是因为这个莫名奇妙的原因,死活调试不通org.eclipse.paho.mqt原创 2015-12-11 13:39:44 · 1619 阅读 · 1 评论 -
makefile多目录的.c 格式.cpp混合编译
## c.cpp混合编译的makefile模板##BIN = test.exeCC = gccCPP = g++#这里只加入库头文件路径及库路径INCS = -I"c:/mingw/include"LIBS = -L"c:/mingw/lib"SUBDIRS =#生成依赖信息时的搜索目录,比如到下列目录中搜索一个依赖文件(比如.h文件),例如 -I"./***/" -I"原创 2015-12-08 14:21:47 · 9969 阅读 · 1 评论 -
Linux socket 获得本地IP和广播地址
#include #include #include #include #include #include #include int main(int argc, char *argv[]){ int inet_sock; struct ifreq ifr; //建立套接字 inet_sock = socket(AF_INET, SOCK_DGRAM, 0);原创 2016-01-14 14:57:33 · 3836 阅读 · 1 评论 -
socket编程相关的结构体和字节序转换、IP、PORT转换函数
注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换.强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转换的空间必须与源空间一一对应.而结构体则是由不固定的多种类型变量组合而成, 因此强制转换时并不确定原格式与目标格式确定的对应关系, 例如一个结构体为3个变量, 而另一个则为2个, 那么就无法确定原创 2016-01-14 15:39:24 · 3770 阅读 · 1 评论 -
.c文件如何编译为ko的MAKEFILE文件编写
首先需要知道:obj-m = *.oobj-y = *.o上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。生成KO文件,分两种情况:单个.c文件和多个.c文件【以展讯7730 ANDROID4.4为例】1.单个.c文件kernel配置文件中定义CONFIG_RUNYEE_CAMVIB=m注意上面的m,表示作为一个模块进行编译,原创 2016-04-18 09:05:33 · 17761 阅读 · 2 评论 -
linux默认网关的设置
linux装系统设IP,这应该是系统管理员的基本功,可是不同的网络结构有不同的ip设法,您知道吗?1.一块网卡的情况 这个没啥好说的,估计地球人都知道:address,netmask,gateway然后netwok restart,搞定.2.两块网卡的情况 1).一个网关的情况 这种情况也简单,一个网卡设一个ip,其中一个网卡不设置gateway原创 2016-06-06 16:46:11 · 11123 阅读 · 3 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用转载 2015-04-23 10:45:11 · 437 阅读 · 1 评论 -
write read;writev readv;recv send;recvfrom sendto;recvmsg sendmsg五组I/O函数汇总
read、write头文件: #include 原型:size_t read ( int fd, void *buf, size_t count); size_t write ( int fd, const void * buf, size_t count);参数: fd文件描述符;buf指向一段内存的指针;count想要读取或者写入fd的字原创 2015-04-23 15:03:04 · 2971 阅读 · 1 评论 -
可重入函数与不可重入函数
转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如转载 2015-04-23 17:19:33 · 450 阅读 · 1 评论 -
Ubuntu 安装RabbitVCS(类似于windows下的TortoiseSVN)
第一步:将rabbitvcs的添加到源里面。(次操作会提示是否要添加到源里面,点击ENTER添加,Ctrl+C不添加),这里选择ENTER方便更新。sudo add-apt-repository ppa:rabbitvcs/ppa第二步:根据第一步的情况来是否跳过该步骤,如果第一步出现导入key,那第二步可以跳过,否则需要导入keysudo apt-key adv --keyser翻译 2014-06-15 17:33:52 · 822 阅读 · 0 评论 -
ubuntu下打包制作deb安装包
最近写了一个小程序,打算做成deb发布,折腾了两天,终于找到了一个简单的deb制作方法1、首先要编译好程序,获得程序的可执行文件2、新建一个文件夹,例如在用户目录下新建mydeb文件夹3、在mydeb文件夹建立如下结构的文件夹和文件|——mydeb |————usr |————lib |——可执行文件(安装后,原创 2014-06-22 13:43:34 · 16908 阅读 · 0 评论 -
libevent简介和使用
libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库,今天学习下。总体来说,libevent有下面一些特点和优势:* 统一数据源, 统一I/O事件,信号和定时器这三种事件;* 可移植,跨平台支持多种I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等;* 对并发编程支持,避免竞态条件;转载 2014-09-18 11:40:17 · 720 阅读 · 0 评论 -
linux串口编程
#include /*标准输入输出定义*/#include /*标准函数库定义*/#include /*Unix标准函数定义*/#include /**/#include /**/#include /*文件控制定义*/#include /*PPSIX终端控制定义*/#include /*错误号定义*//***@brief 设置串口通信速率*@param fd 类型 int 打开串口的文件句柄*@p原创 2014-09-18 13:10:57 · 619 阅读 · 0 评论 -
select()函数用法
select的函数格式(我所说的是Unix系统下的伯克利socket编程,和windows下的有区别,一会儿说明): int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 先说明两个结构体: 第一,struct fd_set可以理解为一个集合,这转载 2014-09-18 13:32:07 · 878 阅读 · 0 评论 -
linux串口接收0x03等特殊字符的问题
近日在写一个linux的串口程序,发现大多数情况下数据接收没问题,但是有时却有问题。主要是接收的字符串中包含有0x03这个字符,会造成与它相邻的字符同时也接收不到,搞了好久才发现这个错误。查找资料后发现许多ARM板也存着这个问题,存在问题的字符串还包括0x13、0x0D等特殊含义的字符。解决方法方法比较简单,在接收数据前,对串口的文件描述符fd进行如下设置, struct termio原创 2014-09-24 10:53:31 · 6647 阅读 · 0 评论 -
ubuntu 使用Pepper Flash Player代替adobe Flash player
在使用网页浏览视频时一般要安装adobe Flash player,原创 2014-09-15 22:58:48 · 2343 阅读 · 0 评论 -
linux串口API编程
在linux下编写终端程序时,有规范模式 ,非规范模式(原始模式特殊的非规范模式)之分。不用于终端,而是在串口这种使用情况下,一般设置为原始模式(非规范的一种特殊情况)。但用read()函数,希望从串口接收指定的数量的字符时,往往接收到的实际字符数,都与指定的不同。如本人用read()希望接收 10 bytes的数据,但实验后发现,分了几次才接收到,俩次接收2bytes ,两次接收3bytes。原创 2014-10-28 13:54:39 · 3383 阅读 · 0 评论 -
linux中Kill进程的N种方法
常规篇:首先,用ps查看进程,方法如下:$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helpersmx 1824 1822转载 2014-11-13 11:01:07 · 547 阅读 · 1 评论 -
shell脚本常用功能
本文收集了开发过程碰到一些常用的she1、定时重启一个原创 2014-11-13 09:51:53 · 892 阅读 · 1 评论 -
Unix/Linux的内存映射
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式;两个不同的进程A和B共享内存的意思就是:同一块物理内存即被映射到进程A的地址空间中又内映射到进程B的地址空间中.进程A可以实时地看到进程B对共享内存中数据的更新,反之,进程B也可以实时地看到进程A对共享内存的更新;由于多个进程同时访问同一块共享内存区域,那就需要某种同步机制来保证多个不同进程对共享内存的访问,互斥锁、信号量/信号灯、信号转载 2014-12-09 13:31:05 · 616 阅读 · 1 评论 -
Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include原创 2014-12-09 09:32:55 · 2393 阅读 · 1 评论 -
linux awk命令详解
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr转载 2015-02-05 21:24:54 · 512 阅读 · 1 评论 -
ubuntu12.04 (32/64 bits) 安装配置 arm-linux-gcc-4.5.1 交叉编译工具链
1.首先安装minicom和build-essential#sudo apt-get install minicom#sudo apt-get install build-essential2.解压arm-linux-gcc-4.5.1,按照改变目录的形式(最后面的-C)#sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20原创 2015-02-05 21:22:23 · 1925 阅读 · 1 评论 -
linux软件包管理 rpm yum dpkg apt-get
在GNU/Linux(以下简称Linux)操作系统中,RPM和DPKG为最常见的两类软件包管理工具,他们分别应用于基于RPM软件包的Linux发行版本和DEB软件包的Linux发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。RPM全称为RedhatPackage Manager,最早由RedHat公司制定实施,随后被G原创 2015-03-20 10:29:25 · 831 阅读 · 1 评论 -
Linux下的多进程编程
最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多转载 2015-04-23 10:43:43 · 700 阅读 · 1 评论 -
linux 下 进程和线程的区别
进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。原创 2015-04-23 10:46:23 · 537 阅读 · 2 评论 -
ubuntu/LinuxMint安装RabbitVCS
在windows下习惯了用tortoisesvn进行软件开发和管理,转到Linux下面,发现有一款和tortoisesvn极其相似的软件rabbitvcs,使用起来相当的顺手。安装过程有点折腾,可能和我用的linux发行版有关系吧。首先添加源,然后安装相应的软件包:$ sudo add-apt-repository ppa:rabbitvcs/ppa$ sudo apt-get原创 2015-07-22 09:12:21 · 2427 阅读 · 1 评论