上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 指针是c语言的一大利器,可以用他直接对内存进行操作;最近犯了一个大的错误:试图向函数传递一个指针参数,返回函数内部分配的对象的地址;实验证明这种用法是错误的;正确的用法是:把该指针的地址传递给函数,即使用指针的指针,然后用指针的间接引用符‘*’,直接对该指针的内存进行操作;总结如下:1.对基本的数据类型(int,char),可以直接传递指针给函数,用*+地址,直接对该内存进行操作;2.对指针的类型,如果想对指针赋值,改变该指针的内容,则须用指向指针的指针;对该地址进行操作;分析代码如下:#include <stdio.h>#include <stdlib.h>typed 阅读全文
posted @ 2013-04-19 18:15 linengier 阅读(217) 评论(0) 推荐(0)
摘要: /tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。所以,在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行:/sbin/ldconfig 阅读全文
posted @ 2013-04-11 09:52 linengier 阅读(232) 评论(0) 推荐(0)
摘要: OpenCV是目前开源项目中最著名的基于机器视觉方向的图像处理的开发包,目前已经有被移植到嵌入式Linux环境上。本文介绍了OpenCV交叉编译的基本步骤。一、编译环境及库文件linux环境:fedora14交叉编译:4.5.1arm板子:tiny6410libz: zlib-1.2.7libjpeg: jpegsrc.v7libpng: libpng-1.5.10libyasm: yasm-1.2.0opencv: opencv-2.4.2libx264: x264-snapshot-20120608-2245libxvid: xvidcore-1.3.2lffmpeg: f... 阅读全文
posted @ 2013-04-09 11:14 linengier 阅读(514) 评论(0) 推荐(0)
摘要: 一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称:pthread_attr_init/pthread_attr_destroy功能:对线程属性初始化/去除初始化头文件:#include <pthread.h>函数原形:int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthread_attr_t 阅读全文
posted @ 2013-04-06 12:28 linengier 阅读(213) 评论(0) 推荐(0)
摘要: 线程的最大特点是资源的共享性,但资源共享中带来了对共享资源的竞争问题;解决竞争问题的途径是保证对共享资源的互斥访问,所谓互斥访问是指一个执行单元在访问共享资源的时候,他她的指向单元被禁止访问,以保证线程之间同步进行;同步是了保证在同一个时刻只有一个线程对资源进行操作,linux下提供了多种方式来处理线程同步,最常用的是互斥锁,条件变量和信号。互斥量:互斥量用pthread_mutex_t 数据类型来表示;操作函数集如下所示://该函数初始化一个互斥体变量,如果参数attr 为NULL,则互斥体变量mutex 使用默认的属性。int pthread_mutex_init(pthread_mute 阅读全文
posted @ 2013-04-06 11:44 linengier 阅读(301) 评论(0) 推荐(0)
摘要: 自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性、效率。本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的。一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等) 阅读全文
posted @ 2013-04-03 22:46 linengier 阅读(254) 评论(0) 推荐(0)
摘要: 关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是哪个好。一. Linux内核对多进程和多线程的支持方式Linux的线程实现是在核外进行的,核内提供的是创建进程的接口do_fork()。内核提供了两个系统调用__clone()和fork(),最终都用不同的参 阅读全文
posted @ 2013-04-03 22:36 linengier 阅读(471) 评论(0) 推荐(0)
摘要: 每个进程都有他自己当前的工作目录和它自己的根目录。这是内核用来标识进程与文件系统相互作用做必须维护的数据;每个进程的fs字段指向进程的fs_struct结构;struct path { struct vfsmount *mnt; struct dentry *dentry;};/include/linux line6struct fs_struct { int users; // 共享这个表的进程个数 rwlock_t lock; //用于表中字段的读写自旋锁 int umask; //打开文件设置文件权限是所使用的位掩码 int in_exec; struc... 阅读全文
posted @ 2013-04-02 20:29 linengier 阅读(888) 评论(0) 推荐(0)
摘要: linux/fs/open.cSYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode){ long ret; if (force_o_largefile()) flags |= O_LARGEFILE; ret = do_sys_open(AT_FDCWD, filename, flags, mode); /* avoid REGPARM breakage on x86: */ asmlinkage_protect(3, ret, filename, flags, mod... 阅读全文
posted @ 2013-04-02 16:48 linengier 阅读(544) 评论(0) 推荐(0)
摘要: 在浏览 /proc 目录的时候您会发现许多目录的名称是一些数字。这些目录保存了当前系统中运行的所有进程的信息。$ ls -d /proc/[0-9]*/proc/1/ /proc/302/ /proc/451/ /proc/496/ /proc/556/ /proc/633//proc/127/ /proc/317/ /proc/452/ /proc/497/ /proc/557/ /proc/718//proc/2/ /proc/339/ /proc/453/ /proc/5/ /proc/558/ /proc/755//proc/250/ /pr... 阅读全文
posted @ 2013-04-02 16:14 linengier 阅读(232) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 下一页