- 博客(144)
- 资源 (15)
- 收藏
- 关注
原创 linux打印系统cups原理分析
一、Linux打印1.1 Linux打印简介首先需要了解的是,打印在Unix世界的演化中总是围绕着PostScript页面描述语言展开的。该语言是由Adobe公司开发的,它是一个成熟的、用于描述一个文档每一页面内容的程序语言。它是一种与设备无关的打印机语言,即在定义图像时可以根本不考虑输出设备的特性(如打印机的分辨率、纸张大小等),而且它对文本和图形实行同样的处理过程,这就给处理字体带来了极大的灵活性。通过PS驱动程序,各种不同的应用软件将各自的数据转换成PostScript格式。如今很多打印机中都有
2020-10-19 16:55:43
8157
原创 libtar编译和使用
libtar下载 编译和使用1.libtar简介libtar开源库使用C语言编写,可为使用者提供C级别的创建和解压tar包的方法;2.libtar下载地址https://repo.or.cz/libtar.git3.libtar编译3.1下载源码通过上述地址下载libtar源码,我下载的是2013-12-08 Tim Band Added autoconf instructions...
2019-12-26 16:32:46
3839
原创 error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
1.问题 在进行内核模块编译的时候突然提示如下错误:/work/kernel/module.c:136:86: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time] MODULE_DESCRIPTION("compiled by GCC " __VERSION__ " build on " ...
2018-04-16 16:22:53
8058
原创 make -C DST_DIR=(SERVICE_DIR) INCLUDE=$(INCLUDE)
在编写makefile的过程中遇到了这样的一个问题,问题的简单介绍如下:SERVICE_DIR=$(PWD)/service/SERVICE_TARGET=scanINCLUDE=-I$(PWD)/dir1INCLUDE+=-I$(PWD)/dir2INCLUDE+=-I$(PWD)/dir3service:$(SERVICE_OBJS)make -C $(SE
2017-09-18 18:42:55
1016
原创 free(): invalid next size (fast): 0x0000000000aa4430问题
最近在编写代码过程中遇到了一个问题,打印信息如题目所示:free(): invalid next size (fast): 0x0000000000aa4430。查看生成的core文件的bt信息,显示如下:#0 0x00007f4910cb35f7 in raise () from /lib64/libc.so.6#1 0x00007f4910cb4ce8 in abort ()
2017-08-21 19:48:54
14397
原创 Qt 程序异常结束,并且crashed
Qt 程序编译提示程序异常结束,并且程序crashed,提示during startup program exited with code 135
2015-12-10 17:23:14
46307
转载 AIX系统中使用bsdlog函数输出内核信息
AIX系统中使用bsdlog函数输出内核信息 (1)修改syslogd进程的配置文件/etc/syslog.conf,使用echo命令在文件末尾添加内容“kern.info /tmp/kerninfo.log” echo “kern.info /tmp/kerninfo.log” >> /etc/syslog.conf (2)使用touch命令创建ker
2015-07-16 17:26:08
915
原创 网络传输中遇到的字节序问题
因为本人最近做的项目是路由器和交换机管理平台的开发,所以经常会遇到在一台路由器上测试没有任何问题,但是在另一台设备上测试就出现了问题的现象,最后发现还是字节序的问题,虽然对字节序的问题每次都很重视,但是总是在开发中遗漏或者忽略,字节序问题真是令人防不胜防。究其根本原因,一方面是因为自己对字节序的理解还停留在表面上,另一方面可能还是开发经验不足吧,呵呵。在网上看到了许多讲字节序的文章,大部分都讲
2014-12-27 18:39:47
2199
转载 vim tab设置为4个空格
在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4 (ts是tabstop的缩写,设置TAB宽4个空格)set expandtab对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:TAB替换为空格:set ts=4:set expandtab:%retab!空格替换为TAB::set ts=4:set noex
2013-12-28 13:19:48
5716
转载 字节对齐与结构体大小
说明:结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的sizeof,报着不到黄河心不死的决心,终于完成了总结,也算是小有收获,拿出来于大家分享,如果有什么错误或者没有理解透的地方还望能得到提点,也不
2013-11-06 15:48:15
827
转载 c/c++面试题
1、const 有什么用途?(请至少说明两种)答:(1)可以定义 const 常量(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 2、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”?答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后
2013-11-03 20:23:17
1083
原创 宏定义
写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = MIN(*p++, b);解答:#define MIN(A,B) ((A) MIN(*p++, b)会产生宏的副作用这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的“参数”也不是真的参数,在宏展开的时
2013-11-03 16:26:15
1046
原创 数组名
以下为Windows NT下的32位C++程序,请计算sizeof的值void Func ( char str[100] ){ sizeof( str ) = ?}void *p = malloc( 100 );sizeof ( p ) = ?sizeof( str ) = 4sizeof ( p ) = 4Func ( char str[100] )函
2013-11-03 16:20:14
996
转载 高频笔试题strcpy()的写法
题目:已知strcpy函数的原型是1char * strcpy(char * strDest, const char * strSrc);不调用库函数,实现strcpy函数。解释为什么要返回char *。解说:1. strcpy的实现代码1char * strcp
2013-11-02 17:34:29
1108
转载 50条常用SQL语句
[cpp] view plaincopy/*student(学号#,姓名,性别,年龄) course(课程号#,课程名,教师号#) score(学号#,课程号#,成绩) teacher(教师号#,教师名)*/ --1.查询“001”课程比“002”课程成绩高的所有学生的学号 select a.stuNo from score a,score
2013-10-31 22:19:59
2389
2
转载 返回局部变量的问题
函数返回局部变量,是返回局部变量的值。但指针(或地址)是一种特殊的值,所以返回局部指针变量需要特别注意。正确情况下,作为函数返回值的局部指针,其所指向对象的作用域应该是调用者作用域、全局或静态常量区;指向栈空间对象的指针作为返回值,存在潜在的错误。1. 返回局部值变量[cpp] view plaincopyint num(void) {
2013-10-31 22:16:52
1030
转载 C语言字符串反转函数
找工作前写了篇blog说要做些常见的笔试面试题,像单链表反转啊字符串反转啊之类的题目,但是只写了一篇单链表反转就没再继续写下去,因为觉得实在没什么好写的,不过都是一些简单的指针操作罢了,但是还是有很多新手问这个问题,而且我在腾讯二面的时候也被要求实现这个函数,那我也写一篇blog介绍一下字符串反转吧。 C语言中所谓的字符串不过是字符数组,后跟一个0x00字符标识结尾,所以反转起来很容易,
2013-10-31 21:49:10
1218
转载 判断单链表是否存在环,判断两个链表是否相交问题详解
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fas
2013-10-31 21:47:56
638
转载 mini2440 jlink烧写总是出现错误解决方法
1. J-link ARm v4.28b软件清空flash和烧录supervivi:手上的2440开发板是256M nandflash 所以要使用supervivi-128M版本(我用的友善官网提供的1026最新版,要把后缀名修改成.bin,国嵌的版本我使用后一直提示nandflash found),据说这个版本会兼容128M-1G的nand,清除nand时,要把Options ->
2013-10-24 21:13:23
2720
转载 安装redhat时中文显示乱码(小方框)及中文输入法安装解决方法
在安装linux的时候,安装完了中文出现乱码或者是当时选错了选成了英文的,到时候中文显示乱码,下面说一下问题的解决:在首次安装RHEL5时,如果选择的是英文,那么系统将不安装中文支持包,这样就导致了中文显示为乱码(小方框).......有很多人说vi /etc/sysconfig/i18n文件,其实根本就没有那个必要。解决方法:安装1、fonts-chinese-3.02-
2013-10-19 22:57:16
833
原创 结构体指针
声明结构体指针以后必须申请(分配)内存,或者动态申请内存或者将某个结构体对象地址赋给这个结构体指针struct point{//包含两个变量成员int x;int y;};using namespace std;int main(int argc, char *argv[]){point pt; //加上struct的结构体变量定义是C语言
2013-10-16 11:00:29
655
转载 结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去str
2013-10-16 10:47:38
730
原创 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2013-10-16 00:23:11
585
原创 a++和++a
a++表示先运算后自加;先取得a的值,然后进行一系列运算.然后再自加比如b=a+++a++;这里面就有两个a++,都是先取得a的值,然后进行一系列运算(算数运算,关系运算,逻辑运算),这里的运算为加法运算和赋值运算,一系列运算结束以后再进行自加运算,得到a自身的值,假设a的值为1,这里b的值为2,a的值为3。++a表示先自加后运算;先将a进行自加运算,再参与一些列运算。比如b=++
2013-10-14 13:07:51
889
转载 含有虚函数的类sizeof大小
01 #include 02 using namespace std; 03 04 class Base1{ 05 virtual void fun1(){} 06 virtual void fun11(){} 07 public: 08 virtual ~Base1(); 09 }; 10 11 class B
2013-10-12 13:52:56
891
转载 C++构造函数和拷贝构造函数详解
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如:A(void); // 缺省的无参数构造函数
2013-10-12 12:14:28
809
转载 char *p 与char p[] 比较
char *p 与char p[] 比较所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率例:char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";const char *str5
2013-10-12 11:27:54
648
转载 char a[] = "hello world1"和char *p = "hello world2";的区别
1 #include 2 3 int main() 4 { 5 char a[] = "hello world1"; 6 char *p = "hello world2"; 7 *(a+1)='q'; 8 *(p+1)='
2013-10-12 11:16:09
1169
原创 使用vfork过程中出现段错误
在学习linux进程编程的时候遇到一个问题,就是使用vfork()函数以后本以为下面会打印出1和2,但是结果却出人意料#include #include int main(void){ pid_t pid; int count = 0; pid=vfork(); count++; printf("count=%d\n",count)
2013-10-10 16:43:43
2537
1
原创 传参和输出格式
编写一个函数的时候遇到一个问题:代码如下main(){ int f; scanf("%d",&f); printf("%f",f);}输出的结果完全和输入的数字不同,比如输入一个200输出-0.021961。经过询问才得知浮点数和整型数的存储格式不一样,传参和输出格式要一致,看来细节还是没有掌握啊
2013-10-09 10:52:33
599
原创 perror函数
头文件#includestdio.h>#include注意不可以掉了#include这个头文件,perror是包含在这个文件里的定义函数void perror(const char *s); perror ("open_port");函数说明perror( ) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再
2013-10-06 14:42:42
713
原创 linux文件权限
open(argv[1],O_CREAT|O_RDWR,0755)中0的意思?http://zhidao.baidu.com/link?url=vVfcLPYYiMokdpCod_mriv20rpIi2oluyGBmwWjbyZCKrNFxIAC4mYhjYG7wKWSU6tUxIRLoUkbnkCozu3kJLK(这个网址有这个问题的解答)0755,4位分别代表全部用户(all),文件用
2013-10-06 14:37:08
617
转载 变量存储区域及其作用域
变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。 按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。 按作用域分,全局变量在整个*********************************************变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。
2013-09-25 11:22:09
871
转载 关于静态存储区域,堆,栈
有关动态对象创建:一般来说,编译器将内存分为三部分:静态存储区域、栈、堆。静态存储区主要保存 全局变量和静态变量,栈存储调用函数相关的变量、地址等,堆存储动态生成的变量,在c中是指由malloc,free运算产生释放的存储空间,在c++中 就是指new和delete运算符作用的存储区域。1、 静态存储分配指在编译时对数据对象分配固定的存储位置,运行时始终不变。即一旦存储空间的某个
2013-09-25 11:21:07
889
转载 返回局部变量指针
一般我们都知道不能返回局部变量的指针,但很多人知道其然,不知道所以然,那么接下来我们分析一下,先看两段代码/*test1.c*/#include char* get_str(){ char str[] = {"hello"}; return str;}int main(){ char* p = get_str(); p
2013-09-25 10:51:25
879
原创 C语言之C语言概论
C语言概论include称为文件包含命令,扩展名为.h的文件也称为头文件或首部文件。预处理命令有好几种,include称为文件包含命令,其意义是把尖括号""或引号scanf和printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。C源程序的结构特点1.一个C语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。
2013-09-22 16:36:52
1668
原创 C之结构体与联合
结构类型定义和结构变量说明 在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它相当于其它高级语言中的记录。
2013-09-21 17:42:53
749
原创 C语言之字符串
在字符串学习的过程中发现:当使用puts函数输出字符串的时候会将字符串结束标志‘\0’转换成‘\n’,即输出完字符串后换行。但是使用printf函数的时候就不会换行。这是使用这两个函数输出字符串的不同之处。C语言中可以将字符直接赋给一个字符型变量或者字符数组元素。例如:char a[5],c1; c1='A'; a[0]='B';但是不能用复制语句将一个字符串常量或者字符数组
2013-09-21 16:21:05
923
Linux窗口程序设计—Qt4精彩实例分析源码
2013-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人