Linux 系统
文章平均质量分 76
allen_young_yang
Hello
展开
-
extern "C" 的作用
1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用) c文件中有一函数: void Transfer(int a; char b); cpp文件中必须用extern "C"声明该函数如下才可以实行调用: extern "C" vo转载 2012-03-06 10:03:53 · 333 阅读 · 0 评论 -
Linux 2.6内核链表数据结构
1 链表设计原理这里使用2.6内核,但实际上2.4内核中的链表结构和2.6并没有什么区别。不同之处在于2.6扩充了两种链表数据结构:链表的读拷贝更新(rcu)和HASH链表(hlist)。这两种扩展都是基于最基本的list结构,因此,本文主要介绍基本链表结构,然后再简要介绍一下r转载 2011-07-29 09:03:38 · 1196 阅读 · 1 评论 -
在用户空间编程使用linux内核链表list,hlist宏定义和操作
http://www.chinaunix.net 作者:思一克 发表于:2008-09-17 09:56:44【发表评论】【查看原文】【C/C++讨论区】【关闭】在用户空间编程使用linux内核链表list,hlist宏定义和操作.linux内核中的list_head和hlis转载 2011-07-29 10:55:59 · 965 阅读 · 0 评论 -
在OS X和Ubuntu下使用Dropbox同步任意文件夹
Dropbox是美国一款免费的云存储服务,能很方便的同步文件(夹)。但是有个限制,Dropbox只能同步一个文件夹中的内容,不能同时同步多个文件夹。在OS X和Ubuntu下可以使用ln命令实现同步多个文件夹。以Ubuntu为例,要同步/home/zhu/Documents/Ub原创 2011-07-25 17:15:41 · 975 阅读 · 1 评论 -
Linux之dd命令
Linux之dd命令[日期:2011-02-10] 来源:blog.csdn.net/tigerjb 作者:tiger-john在安装文件系统时用到了dd命令,对它不是很熟悉,就查了下它的用法,和大家share下一.dd命令1.我们先在终端输入命令: man dd,看以下官方的解释 :NAME dd - convert and copy a fileSYNOPSIS dd [OPERAND]... dd OPTIO转载 2011-05-10 17:19:00 · 811 阅读 · 0 评论 -
基于Linux的v4l2视频架构驱动编写
来源:Linux社区 作者:Sasoritattoo 其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做出来也没关系,所以直接退出博士的团队,投靠了院长的门下,呵呵,说到这里其实并不是我太见风使驼了,而是····老是让我做单片机的东东,我嫌没意思,他也知道我一开始就要学嵌入式,所以,最后,我想了一下,既然不能帮他做项目,那留着转载 2011-05-07 11:46:00 · 615 阅读 · 0 评论 -
android / ffmpeg dynamic module, JNI simple wrapper
android / ffmpeg dynamic module, JNI simple wrapper On production device, we can't use "executable file ".<br /><br />we need to build "dynamic, SO module" for ffmpeg/ ffserver.<br /><br />This post explain how to build SO module and simple JNI interface转载 2011-05-06 22:41:00 · 1351 阅读 · 0 评论 -
Ffmpeg框架结构解读
1、 FFMEPG结构说明 1.1》介绍 ffmpeg(Fast Forward Moving Pictures Experts Group)是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库,是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。ffmpeg的开发是基于Linux操作系统,但是可以在大多数操转载 2011-06-30 09:09:00 · 5796 阅读 · 0 评论 -
利用Eclipse CDT 阅读C/C++代码
常见阅读代码的工具有 , visual c++, visual studio + va(visual assistant), 以及 source insight, 这几个功能强大的收费软件 , 目前用得非常多 , 尤其是 Source Insight( 以下简称 SI), 是一个转载 2011-08-15 10:17:26 · 1157 阅读 · 0 评论 -
eclipse 快捷键(史上最全)
第一部分 常用A:Ctrl+k 向下查找选中的字符串B:Ctrl+shift+K 向上查找选中的字符串C:Ctrl+shift+↑↓ 向上向下查找一个函数和变量D:双击”{“或”}” 找到相对应的”}”和”{转载 2011-08-15 11:22:09 · 3355 阅读 · 1 评论 -
ubuntu运行Chrome出现“Google Chrome can not be run as root”的解决方法
如果玩Linux的桌面环境,那Ubuntu的绝对是首选,本人无聊蛋疼把其中一台VPS搞上个桌面环境(Ubuntu 10.04+GNOME+VNC),由于配置不高,打算用Chrome代替默认的Firefox,在内置软件中心里只找到了Chromium,暂时还没蛋疼到玩这个,所以跑去官转载 2011-09-19 20:49:15 · 3060 阅读 · 0 评论 -
kernel hacker修炼之道之Git使用方法(一)
Git使用方法(一) 作者 李万鹏 kernel hacker修炼之道之Git使用方法(一)kernel hacker修炼之道之Git使用方法(二)kernel hacker修炼之道之Git使用方法(三)kernel hacker修炼之道之Git使用方法(四)kernel hacker修炼之道之Git使用方法(五)转载 2012-01-29 10:35:32 · 587 阅读 · 0 评论 -
【Linux入门学习之】vi/vim编辑器必知必会
一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。(2)很多软件的编辑接口都会主动调用vi。(3)转载 2011-12-07 17:56:22 · 352 阅读 · 0 评论 -
用Diff和Patch工具维护源码
在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维转载 2011-12-07 09:53:48 · 261 阅读 · 0 评论 -
苹果的另一面:开源软件重镇
苹果的另一面:开源软件重镇2011-05-14 22:19 | 13929次阅读 | 来源:CSDN原创 【已有61条评论】发表评论关键词:iOS,开源,Mac,Apple | 作者:刘江 | 收藏这篇资讯刚才一个苹果网站的链接在很短时间内成为转载 2011-10-10 08:50:38 · 1872 阅读 · 0 评论 -
十个你可能不知道的ubuntu快捷键
十个你可能不知道的ubuntu快捷键2010年06月13日09:49译言网royaso我要评论(5)字号:T|T在本文中,我将说的所ubuntu下的快捷键。恩,对linux不太熟悉的同学,我稍微说明一下,ubuntu是最转载 2011-10-17 11:12:45 · 329 阅读 · 0 评论 -
源代码查看工具 Source Navigator 使用心得
Source Navigator 是Red Hat出品的一款查看源代码的工具,非常好用,与Windows下的Source Insight有一敌。但是它的界面不怎么好看,用的不是GTK图形库,所以界面风格与Gnome不一致,操作上也有些不同。除了这些,其它功能都非常强大,细数如下。转载 2011-08-31 14:05:50 · 3794 阅读 · 0 评论 -
Ubuntu 10.10下安装source navigator 一步一步教你如何安装
习惯了在windows下用vc看工程代码,若是再装上个vc助手,那就相当的爽了!在Linux环境下呢,百度了下,看到了source navigator,不少人推荐使用这个工具用来查看源代码。它是red hat开发的一个IDE,但是大部分人均用它来阅读,而不是开发,总而言之,不多废转载 2011-08-31 13:38:40 · 743 阅读 · 0 评论 -
linux定时器设置
10.5.2 精通定时器设置函数alarm设置的定时器只能精确到秒,而以下函数理论上可以精确到微妙:#include #include int getitimer(int which, struct itimerval *value);int s转载 2011-08-25 11:27:27 · 7791 阅读 · 0 评论 -
c++面向对象编程必备“良方”
分类: 1.c/c++2011-09-18 00:56 1813人阅读 评论(5) 收藏 举报前言:c++面向对象中的繁琐机制,不得不让你在编程中频频“犯病”,找错误,找bug,困扰,是你的病源所在,本人虽不是什么“良医”, 却也算是总结出以下“良方”。注:难转载 2011-09-20 09:30:07 · 419 阅读 · 0 评论 -
ubuntu下git安装与使用笔记
ubuntu下git安装与使用笔记 引用地址:<br />注意: 该地址仅在今日23:59:59之前有效<br /> GIT 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。<转载 2011-05-01 13:29:00 · 429 阅读 · 0 评论 -
debian的VIM设置
<br />debian默认安装的简易的。<br />安装:apt-get install vim <br />2.1 基本设置<br /> * set nocp<br /> 该命令指定让 VIM 工作在不兼容模式下。 <br /> 而 VIM 里可以使用 u 命令撤消多步操作, “重复”使用的快捷键是 Ctrl + R。<br /> 只有在不兼容模式下, 才能更好地发挥 VIM 自身的特点。 Bram 爷爷强烈推荐大家使用 VIM 的不兼容模式, 滇狐也是这样转载 2011-04-20 15:37:00 · 1083 阅读 · 0 评论 -
VMWare里Linux使用MINICOM实现与开发板的通讯
VMWare里Linux使用MINICOM实现与开发板的通讯最近的朋友很多问MINICOM设置的问题把原来写的整理一下 发一下 现成的还行 有朋友问我驱动怎么开发这个就比较麻烦了:)还是等我过段时间了也把手头的几个驱动搞定了再说---------正文-------------MINICOM是LINUX提供的和WEINDOWS超级终端一样的工具,一般用做串口与开发板通信,当然有的板子也用USB,但这里只介绍串口的设置一 VMWARE虚拟机添加串口(如果没用虚拟机可以跳过这步)如果在VMWARE虚拟机下 一定要转载 2011-02-07 18:09:00 · 1265 阅读 · 0 评论 -
linux下如何设置nfs共享
网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。 在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试。因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌入式目标系统转载 2011-01-30 11:00:00 · 9387 阅读 · 0 评论 -
GCC编译动态和静态链接库
<br />我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两<br />种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态<br />库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运<br />行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以<br />及使用它们。<br />在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。<br /><br />第1步:原创 2010-11-21 16:31:00 · 462 阅读 · 0 评论 -
【百度分享】基于内核模块的测试代码编写
<br />1、背景<br /> 压缩卡驱动提供给文件系统KAPI,供文件系统对文件数据进行压缩和解压。在测试中,最初采用的方法是通过文件系统提供的系统调用,利用文件系统在处理系统调用时,会调用到驱动的KAPI,来完成对压缩卡KAPI及其更下层(包含硬件)正确性的测试。考虑到这种方法,可能会由于文件系统对KAPI的具体使用方式而屏蔽一些问题的发现,因此展开了对KAPI的直接测试。由于KAPI是内核态的接口,无法在用户态直接调用,因此要最终完成对KAPI的更直接测试,需要借助编写内核模块(Kernel Mo转载 2010-12-28 14:36:00 · 496 阅读 · 0 评论 -
task_struct结构描述
<br />task_struct结构作者:sunmoon <br /> 在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构.然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理.因此了解task_struct的结构对于我们理解任务调度(在linux转载 2010-12-27 16:59:00 · 1218 阅读 · 0 评论 -
完全用 GNU/Linux 工作
<br />完全用 GNU/Linux 工作 <br />— 摈弃 Windows 低效率的工作方式,发掘 Linux 身上的 UNIX 气质 <br />我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 <br />GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 <br />我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。 <br /转载 2010-12-16 13:23:00 · 327 阅读 · 0 评论 -
Linux环境下的C/C+基础调试技术2
<br />Linux环境下的C/C+基础调试技术2——程序控制 收藏 此文于2010-12-12被推荐到CSDN首页<br />此文于2010-12-08被推荐到CSDN首页<br />如何被推荐?<br />Author:gnuhpc <br />WebSite:blog.csdn.net/gnuhpc<br />1.让程序停下来的三种模式<br />•断点(breakpoint):让程序在特定的地点停止执行。 <br />•观察点(watchpoint):让程序在特定的内存地址(或者是一个涉及多个地址转载 2010-12-14 16:43:00 · 301 阅读 · 0 评论 -
关于linux同步机制及代码解析
关于linux同步机制<br />定义<br /> <br />确保多个进程安全操作共享数据的安全机制,常用的有以下几类:<br /> <br />名称<br />定义<br />优点<br />缺点<br />原子操作<br />保证指令以原子的方式执行,即不能被打断<br />简单易用<br />使用面窄,只适用于计数器场合<br />自旋锁<br />最多只能被一个执行线程占有,其它试图占用此锁的线程将循环等待<br />可以用于中断处理程序中<br />循环等待占用CPU的时间,适用于快速任务(锁占原创 2010-10-17 13:30:00 · 759 阅读 · 0 评论 -
Linux环境下的C/C++基础调试技术1——初步了解
Linux环境下的C/C++基础调试技术1——初步了解(2010.12.5更新) 收藏 此文于2010-12-03被推荐到CSDN首页如何被推荐? Author:gnuhpc WebSite:blog.csdn.net/gnuhpc 1.调试技术的几个准则 •惊喜准则:找到错误是一种惊喜,心理上不要畏惧而是要怀着感恩的心去面对。 •从小处开始准则:刚开始测试的使用从小处着手,暂时不涉及边界数据,虽然这样可能会掩盖一些Bug,但是这样或许能查到最主要的Bug,例如你的程序包含了一个巨大的循环体,最容易发现的B转载 2010-12-06 11:05:00 · 341 阅读 · 0 评论 -
linux 内核定时器 timer_list详解
linux 内核定时器 timer_list详解(转发)2010-11-22 11:13linux 内核定时器 timer_list详解<br />http://www.linux-cn.com/html/linux/kernel/20070412/1886.shtml<br />http://linux.ccidnet.com/art/741/20061116/952655_1.html<br />Linux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()转载 2011-02-24 11:21:00 · 2297 阅读 · 0 评论 -
Linux内核的等待队列[转]
Linux内核的等待队列[转] Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型的域作为"连接件"。由于我们只原创 2011-02-24 13:26:00 · 1325 阅读 · 0 评论 -
Debian与Ubuntu英文环境下使用SCIM中文输入法
首先确保你的桌面安装了中文支持 <br />然后设置locale: <br /> apt-get install locales //已经安装有locales的可以略过这一步<br />dpkg-reconfiguer locales<br /> <br />在出现的locales配置界面中,选择以下地区和编码<br /><br />en_US.UTF-8<br />zh_CN.GB2312<br />zh_CN.UTF-8<br />zh_CN.GBK<br />再选择默认语转载 2011-04-21 13:52:00 · 1674 阅读 · 0 评论 -
Linux configure关于交叉编译的参数设置 (转)+补充一下关于 pkg-config 在交叉编译中的使用(转) + 动态.so库的环境设置, 使用 ld.so.conf
<br />configure的参数众多,一般包括如下 <br /> --srcdir=DIR <br /><br /> 这个选项对安装没有作用.他会告诉'configure'源码的位置.一般来说不用指定此选项,因为'configure'脚本一般和源码文件在同一个目录下. <br /><br /> --program-prefix=PREFIX <br /><br /> 指定将被加到所安装程序的名字上的前缀.例如,使用'--program-prefix=g'来configure一个名转载 2011-04-15 10:25:00 · 2133 阅读 · 0 评论 -
基于V4L2的视频驱动开发
<br />基于V4L2的视频驱动开发(1-2)<br /> 华清远见刘洪涛<br /> <br />编写基于V4L2视频驱动主要涉及到以下几个知识点:<br /><br />l 摄像头方面的知识<br />要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出转载 2011-05-23 14:38:00 · 1100 阅读 · 0 评论 -
使用eclipse/ndk-gdb对java/native code联合调试
使用eclipse/ndk-gdb对java/native code联合调试 [复制链接]电梯直达go1#Vincent发表于 2010-9-7 23:48:16|只看该作者|倒序浏览<br />点击查看活动规则想必很多网友都有这样的疑惑,我的程序中上层是java代码,下层使用c/c++ 写的,那到底要怎么调试呢?<br /><br />我们首先想到的是ndk-gdb,ndk是google提供的用来native code开发的,ndk-gdb使用来调试native code的。<br />转载 2011-05-23 17:34:00 · 3047 阅读 · 0 评论 -
debian开发环境:tftp服务
<br />debian开发环境:tftp服务 收藏 <br />使用debian作为开发服务器,需要用到tftp服务。安装配置笔记如下:<br />安装:<br />apt-get install xinetd tftpd tftp<br />提示没有tftpd,使用命令debian:xinetd.d# apt-get install tftpd*<br />来安装tftpd,自动安装的是tftpd-hpa。<br />正在读取软件包列表... 完成<br />正在分析软件包的依赖关系树 <转载 2011-04-03 09:43:00 · 2195 阅读 · 0 评论 -
linux里命令pkg-config工具的使用
<br />一、编译和连接<br /> 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的使用带来麻烦。<br /> 为了解决转载 2011-03-27 10:29:00 · 508 阅读 · 0 评论 -
用GDB调试程序(8)──查看栈信息
用GDB调试程序(8)──查看栈信息2008-04-09 10:48查看栈信息<br />当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。<br />下面是一些查看函数调用栈信息的GDB命令:<br /> Backtrace,bt 打印当前的函数调用栈的所有信息。如: <br /> (gdb) bt<br />转载 2011-03-27 09:57:00 · 757 阅读 · 0 评论