glib库头文件找不着 glib.h/glibconfig.h: no such file or directory glib-2.0使用pkg-configMakefile加上CFLAGS += `pkg-config --cflags glib-2.0`LDFLAGS += `pkg-config --libs glib-2.0`
ARM 指令集版本和ARM 版本 常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march, -mcpu等。他们分别表达什么涵义呢?Sam自己也不很清楚,只是大概有个模糊的概念。今天就仔细研究一下。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,
ARM CPU 简单分类 - ARM7 系列 ARMv4T intruction set (but ARM7EJ use ARMv5TE) Core:ARM7TDMI 、 ARM7TDMI-S 、ARM720T 、 ARM7EJ No MMU 三级流水线- ARM9 系列 ARMv4T intruction set Core:ARM920T
Linux下C语言多线程编程 一、多线程的创建1、Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连 接时需要使用库libpthread.a。因此,后面的编译必须在选项中加入 -lpthread 选项,否则提示找不到pthread_create()这些函数。Linux下pthread的实现是通过系统调用clone()来实现的。C
迭代与递归:To Iterate,Human; to Recurse, Divine. 引言从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?「从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?『从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……』」什么是递归递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。为什么要用
qemu 二进制翻译 执行流程分析 一.qemu简介 qemu是使用动态二进制翻译的cpu模拟器,它支持两种运行模式:全系统模拟和用户态模拟。在全系统模拟下,qemu可以模拟处理器和各种外设,可以运行操作系统。用户态可以运行为另外一种cpu编译的进程,前提是两者运行的os要一致。qemu使用了动态二进制翻译将targetinstruction翻译成hostinstruction,完成这个工作的是tcg模块。为
Linux程序设计 清空标准输入缓冲区 今天在Linux程序设计的时候需要清空标准输入缓冲区,于是使用了如下Windows程序设计中的方法:1.fflush(stdin);这个fflush()函数根本不是标准C中的函数,只是标准C的扩展,所以在Linux中使用根本不行;2.中网上搜索了下,发现有网友建议使用rewind(stdin);这个函数其实是将指针指向流的开始处。但是它是文件操作中的一个函数,操作的是FILE型流,
将标准输出重定向到一个文件的同时并在屏幕上显示 一、标准输出+标准错误输出标准输出和标准错误,同时保存到文件logfile方法一: 2>&1 | tee [root@home root]# id das 2>&1 |tee logfileid: das: No such user[root@home root]# cat logfileid: das: No such user 注释:管道的作用为把
内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap系统调用 如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两个数值表示一个进程自启动以来所发生的缺页中断的次数。发成缺页中断后,执行了那些操作?
ln命令 软链接建立与删除 1 . 使用方式 :ln [option] source_file dist_file (source_file是待建立链接文件的文件,dist_file是新创建的链接文件) -f 建立时,将同档案名删除. -i 删除前进行询问. ln -s abc cde 建
GDB调试命令总结 1:定位某变量/内存地址 何时被修改a为待观察的变量gdb> watch *(long*)agdb> watch *(long*)(a+4)gdb> watch *(long*)(a+8)2:查看数组的值。编程时:array[i]用GDB查看时,用 p array+i即可。3:善于使用$4: layout功能ctrl x 然后再 a 可以切换
系统调用,stat,fstat以及lstat函数:检查文件的属性 头文件:#include #include 定义函数:int stat(const char * file_name, struct stat *buf);函数说明:stat()用来将参数file_name 所指的文件状态, 复制到参数buf 所指的结构中 。 我们使用函数stat,fstat和lstat来检查文件的属性。这些函数使用struct
系统调用 stat(), fstat(), lstat() 函数 stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失
Linux内存管理 mmap系统调用 转自: http://blog.chinaunix.net/uid-26669729-id-3077015.html heavent2010的ChinaUnix博客一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零
printf_系统调用过程分析_write() putc() 函数实现 系统调用”是操作系统提供给用户程序进行调用的一些服务。这些服务是系统预先提供的函数,在这一点上系统调用与普通的用户程序是没有区别的。而区别则在于“系统调用”是由操作系统提供给用户的,这些服务更接近底层或者要求的安全性更高,因此由操作系统来统一实现和管理。 程序员在写程序的过程中会经常需要调用“系统调用”来完成特定的任务。我们以教学用的类Linux操作系统xv6为例,以打印操作为主线来说明
C++ 多态性的实现方式 C + + 中多态性的实现方式 多态性是面向对象程序设计的一大支柱,它指的是在基类中定义的属性或服务被派生类继承之后,可以表现出不同的行为. 也就是指一段程序能够处理不同类型对象的能力. 在面向对象程序设计语言C + + 中,这种多态性的实现方式有4 种,分别是强制多态、重载多态、类型参数化多态和包含多态. 其中,类型参数化多态和包含多态称为一般多态性,用来系统地描述语义
Linux 查看系统信息命令 cpu、内存、进程、硬盘、网卡 系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsus
linux 输出 重定向命令 标准输入,输出和错误---------------------------------文件文件 描述符---------------------------------输入文件—标准输入 0输出文件—标准输出 1错误输出文件—标准错误 2---------------------------------
C语言字节对齐及设置编译对齐方式方法 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果
linux less命令 less 在查看之前不会加载整个文件。可以尝试使用 less 和 vi 打开一个很大的文件,你就会看到它们之间在速度上的区别。 在 less 中导航命令类似于 vi。本文中将介绍一些导航命令以及使用 less 的其它一些技巧。 1 搜索当使用命令 less file-name 打开一个文件后,可以使用下面的方式在文件中搜索。搜索时整个文本中匹配的部分会被高亮