Linux
Linux_痞子
痞子
展开
-
popen
#include<stdio.h>int main(void){ FILE *fp; char buff[1024] = ""; fp = popen("echo $PATH","w"); //fseek(fp,0,SEEK_SET); fread(buff,1,1024,fp); printf("buff = %s\n",buff); pcl翻译 2016-03-15 18:53:15 · 577 阅读 · 0 评论 -
linux头文件详解
linux常用头文件如下:POSIX标准定义的头文件<dirent.h> 目录项<fcntl.h> 文件控制<fnmatch.h> 文件名匹配类型<glob.h> 路径名模式匹配类型<grp.h> 组文件<netdb.h> 网络数据库操作<pwd.h> 口令文件<regex.h> 正则表达式<tar转载 2016-04-30 20:34:09 · 331 阅读 · 0 评论 -
面试
一、C语言 1、Linux的内存管理机制2、C程序编译运行的五个阶段 预处理,编译,链接 gcc -i gcc -s gcc -c 3、数据类型 1) 整型、浮点型、指针类型、聚合类型 定义数据在内存中占有几个字节,即读取数据时,一次读取几个字节。 聚合类型 2) 类型定义 a) typedef b) #define原创 2016-05-13 19:49:23 · 247 阅读 · 0 评论 -
qt样式表的使用
Qt中可以灵活的使用层叠样式表(CSS),其语法和css很相似。因为HTML CSS的灵活性,可以很方便的为QT界面设计自己需要的外观。QT4.8各部件Style Sheets的用法示例在这里:http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qlineeditStyle Sheets用户手册在这里:http:转载 2016-05-03 19:11:09 · 998 阅读 · 0 评论 -
C++多态
测试代码,理解C++的多态。 1、多态的实现机制,虚函数; 2、多态实现的三要素:1)继承,2)重写,3)虚函数 理解: 在C++中,多态的应用是很强大的,也是面试中必问的话题,所以在这里我想根据自己的理解总结一下: 在C++中要实现多态,以上的三要素必须满足,必要有父子类之间的继承关系,而且父类的函数必须是虚函数,在子类中必须重写父类的方法。例如下面的示例代码。#incl原创 2016-05-14 09:54:36 · 262 阅读 · 0 评论 -
C++重载重写重定义
在C++中有三个很相似的概念,很容易混淆。 下面就来总结区分,下面是测试代码 不过在分析代码之前先来分析一下关于上面的三个名词的概念 重载:1)必须在同一个类中,2)函数名相同,参数列表不同; 重写:1)必须发生在父子类中,2)函数名声明完全一致,且在父类中必须是虚函数; 重定义:1)必须发生在父子类中,2)函数名相同,且在父类中不是虚函数;以上三个定义应该很好理解[个人总结,如有错误,请原创 2016-05-14 10:44:45 · 705 阅读 · 0 评论 -
面试题
任意给了一个如,比如int a=12345,编写程序用a的每一位数相加如果位数大于1,比如是15,继续拆分相加直到结果为1位为止。#include <stdio.h>int test(int test_num){ int temp = 0; if(test_num < 10) return test_num; while(test_num %10 || te原创 2016-05-14 13:29:48 · 205 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
已知类String的原型为class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const String &other)原创 2016-05-14 14:10:45 · 435 阅读 · 0 评论 -
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其
1 sudo rm /var/cache/apt/archives/lock2 sudo rm /var/lib/dpkg/lock原创 2016-05-05 01:37:56 · 1329 阅读 · 0 评论 -
qt安装
sudo apt-get install qt4-dev-tools sudo apt-get install qtcreator sudo apt-get install qt4-doc sudo apt-get install qt4-qtconfig原创 2016-04-16 21:15:15 · 328 阅读 · 0 评论 -
ubuntu的配置
对于刚刚安装好ubuntu系统的人来说,无疑是一件兴奋的事,下面就来说说,在使用ubuntu系统的过程中有那些“坑”。 1、输入法 ubuntu系统默认的是ibus输入法框架,虽然也有默认的支持中文的输入法,但你使用后会默默的“伤蛋”。超级不顺。 那么就需要你自己去更新输入法框架和中文输入法,更具个人习惯,我比较喜欢google拼音和sougou拼音输入法。 注:以下原创 2016-05-06 13:58:55 · 308 阅读 · 0 评论 -
ubuntu 14.04.4 LTS源更新
1、备份 sudo cp /etc/apt/source.list /etc/apt/source.list.backup 2、 加载源 sudo gedit /etc/apt/source.list,把下面的内容copy进去保存ok 3、更新 sudo apt-get update以下提供的是网易的软件源,更新之前请一定注意ubuntu的版本,和软件源的备份。d原创 2016-05-07 01:46:00 · 1182 阅读 · 0 评论 -
ubuntu Qt环境链接mysql测试
qt链接mysql数据库的测试#include "Mysql.h"#include <QSqlDatabase>#include <QSqlQuery>#include <QCoreApplication>Mysql::Mysql(){ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//加载数据库驱动 db.set原创 2016-05-07 02:07:06 · 607 阅读 · 0 评论 -
qt类型转换
1、char * 与 const char *的转换 char *ch1="hello11";const char *ch2="hello22";ch2 = ch1;//不报错,但有警告ch1 = (char *)ch2;2、char 与 QString的转换char 转换为 QString其实方法有很多中,我用的是:char a='b';QString str;str=QString转载 2016-04-24 09:58:46 · 319 阅读 · 0 评论 -
c语言的坑
关于c中的两个小坑1、sizeof()关键字测试的是在栈中的内存所占有的存储空间,对于堆内存则不可行static int a = 10;sizeof(a) = ?2、strlen测试字符串的长度,必须要以'\0'结束。char ch[2] = {'1','2'};strlen(ch) = ?原创 2016-05-10 14:31:09 · 436 阅读 · 0 评论 -
全局函数和成员函数的this转换
这里的测试代码主要是帮助自己了解在类中的this指针。 使用的测试代码主要是:1、使用全局函数实现对象的相加;A global_add(A &a,A &b);使用全局函数实现对象的相加,必须要在实参中传递两个对象,返回值是对象的类型。2、使用成员函数实现对象的相加;A& member_add(A &ab);系统会解释为:A& member_add(A *pobj,A &ab);即:会增加一原创 2016-04-11 00:00:06 · 624 阅读 · 0 评论 -
Linux下curses库的安装和函数的使用
curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。Ubuntu下安装方法:sudo apt-get install libncurses5-dev (如果发现找不到这个包,使用命令 sudo apt翻译 2016-02-17 10:12:04 · 717 阅读 · 0 评论 -
Linux 和 Ubuntu下的samba服务器的配置注意点
Linux 和 Ubuntu下的samba服务器的配置注意点。1、首先安装好samba,在Ubuntu下安装不成功的,或者显示有软件的依赖性问题,需要对系统的软件源进行更新。 软件源的存放目录在/etc/apt/source.list,更新前,最好先备份。 sudo apt-get update(update软件源); sudo apt-get原创 2016-01-23 17:26:16 · 393 阅读 · 0 评论 -
Linux下的termios库函数使用和密码实现
termios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小组函数调用,你就可以对终端接口进行控制。可以被调整来影响终端的值按照不同的模式被分为如下几组:1.输入模式2.输出模式3.控制模式4.本地模式5.特殊控制模式最小的termios结构的典型定义如下:struct termios{ tcflag_t翻译 2016-02-17 11:40:37 · 2594 阅读 · 0 评论 -
进程状态转换
1.就绪–>执行 2.执行–>就绪 3.执行–>等待 4.等待–>就绪一、进程的三种基本状态进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。 就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。 执行(Running)状态 当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行转载 2016-03-16 02:03:11 · 1908 阅读 · 0 评论 -
线程之互斥锁
在多线程中对共享资源的访问在一个多线程的程序中,有时需要同时对共享资源的访问,就会造成对共享资源的读写问题。 例如:有五个线程,其中一个对共享资源进行修改,其余四个线程需要同时对共享资源进行读访问。势必会造成其余四个线程读取数据的不稳定。此时就可以使用互斥锁去解决这一问题。 当修改共享资源的线程需要对数据进行修改时,首先得到互斥锁,进行加锁。其他进程就被阻塞不可以去读取资源了。操作完成后,解锁,原创 2016-03-16 02:39:36 · 315 阅读 · 0 评论 -
文件操作总结
对于文件的基本操作函数很多,大致可以分为C标准库自带的带缓存的文件操作函数和LINUX下的底层不带缓存的文件操作函数。 1、打开文件open():打开文件int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);fopen():打开文件FILE *fope原创 2016-03-16 20:23:56 · 305 阅读 · 0 评论 -
ubuntu下ultraedit语法高亮脚本文件添加
语法高亮对于代码员来说,一个好的编辑器绝对是一把利剑,今天我就来说说如何在ubuntu下配置ultraedit代码编辑器的语法高亮设置。1、下载ultraedit编辑器,可以去官网下载[ultraedit下载](http://www.ultraedit.com/downloads/uex.html)2、下载你需要的编辑语言的高亮配置的脚本文件[\[worldfiles下载地址\]](http://原创 2016-03-04 16:20:03 · 1251 阅读 · 0 评论 -
线程通信
希望此文能给初学多线程编程的朋友带来帮助,也希望牛人多多指出错误。 另外感谢以下链接的作者给予,给我的学习带来了很大帮助 [http://blog.csdn.net/locape/article/details/6040383](%E7%BA%BF%E7%A8%8B) [http://www.cnblogs.com/liuweijian/archive/2009/12/30/1635888.h转载 2016-03-20 21:42:01 · 247 阅读 · 0 评论 -
linux 线程互斥同步By信号量
今天有空就研究了下linux线程间的同步通信By信号量,离校钱只是匆匆的从网上看了一点概念性的东西(其实连概念也谈不上,就知道有信号量这么回事),对于具体的怎么用代码实现也不知道,现在正好有时间,研究了一下。1、概念1、信号量从本质上是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资源的访问。2、信号量可以实现线程的同步和互斥3、通过sem_post()和sem_wait()函数对信号量原创 2016-03-20 23:24:28 · 411 阅读 · 0 评论 -
socket编程
一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访转载 2016-03-20 23:35:13 · 223 阅读 · 0 评论 -
进程(读写锁)
并发操作:对于某一数据,多用户可以并发的读取数据,但是同时只可以有一个用户进行修改操作。 读写锁(read-write lock) 一 综述 在一些程序中存在读者写者问题,也就是说,对某些资源的访问会 存在两种可能的情况,一种是访问必须是排它行的,就是独占的意思,这称作写操作;另一种情况就是访问方式可以是共享的,就是说可以有多个线程同时去访问某个资源,这种就称作读操作。这个问题模型是翻译 2016-03-15 10:49:05 · 1654 阅读 · 0 评论 -
进程通信[概念比较]
为了能够有效的控制多个进程之间的沟通过程,保证沟通过程的有序和和谐,OS必须提供一定的同步机制保证进程之间不会自说自话而是有效的协同工作。比如在 共享内存的通信方式中,两个或者多个进程都要对共享的内存进行数据写入,那么怎么才能保证一个进程在写入的过程中不被其它的进程打断,保证数据的完整性 呢?又怎么保证读取进程在读取数据的过程中数据不会变动,保证读取出的数据是完整有效的呢? 常用的同步方式有: 互斥转载 2016-03-15 11:17:30 · 286 阅读 · 0 评论 -
实现在linux下的itoa函数
在linux系统中虽然自带了atoi()函数, 但是内有对应的itoa()函数,那就自己实现吧! 1、自己实现itoa()void itoa(int i,char* string){ int power,j; j=i; for(power=1;j>=10;j/=10) power*=10; for(;power>0;power/=10)翻译 2016-03-17 00:06:22 · 3515 阅读 · 0 评论 -
linux 下的Sqlite和mysql操作
由于最近一些课业的需求需要了解下数据库的操作,以linux为内核的一些嵌入式的产品中,主流的一些数据库主要有sqlite和mysql等。 数据库的基本操作语句大同小异,主要包括增、删、改、查,和一些修饰的查询语句。 下面就主要来说说sqlite数据库的操作: 1、首先安装数据库 sudo apt-get install sqlite3 sqlite3 -version 查看安装的sqlit原创 2016-04-23 20:25:34 · 569 阅读 · 0 评论