char函数

strtok()和strtok_r()

一曲冷凌霜 提交于 2019-12-30 08:18:13
下面的说明摘自于最新的Linux内核2.6.29,说明了strtok()这个函数已经不再使用,由速度更快的strsep()代替 /* * linux/lib/string.c * * Copyright (C) 1991, 1992 Linus Torvalds */ /* * stupid library routines.. The optimized versions should generally be found * as inline code in <asm-xx/string.h> * * These are buggy as well.. * * * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de> * - Added strsep() which will replace strtok() soon (because strsep() is * reentrant and should be faster). Use only strsep() in new code, please. * * * Sat Feb 09 2002, Jason Thomas <jason@topic.com.au>, * Matthew Hawkins <matt@mh.dropbear.id.au> * -

set--常见成员函数及基本用法

左心房为你撑大大i 提交于 2019-12-30 04:21:55
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器。 set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素 2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数 3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同) set模板原型://Key为元素(键值)类型 1 template < class Key, class Compare=less<Key>, class Alloc=STL_DEFAULT_ALLOCATOR(Key) > 从原型可以看出,可以看出比较函数对象及内存分配器采用的是默认参数,因此如果未指定,它们将采用系统默认方式。 set的各成员函数列表如下: c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器 c++ stl容器set成员函数:clear()--清除所有元素 c++

设备驱动模型-device、driver、bus(2/2)

吃可爱长大的小学妹 提交于 2019-12-30 01:22:42
目录 一. device设备描述 1.1 内核结构 1.1.1 设备 struct device 1.1.2 设备属性 struct device_attribute 1.2 相关操作接口 1.2.1 设备操作接口 1.2.2 设备属性操作接口 二. driver设备驱动描述 2.1 内核结构 2.1.1 struct device_driver驱动数据结构 2.1.2 struct driver_attribute 设备属性 2.2 相关操作接口 2.2.1 驱动操作接口 2.2.2 驱动属性操作接口 三. 设备、驱动配对之bus总线---实例 3.1 device实例 3.2 driver实例 3.3 bus实例 一. device设备描述 1.1 内核结构 1.1.1 设备 struct device struct device { struct device *parent; /*设备私有数据*/ struct device_private *p; struct kobject kobj; /*设备名*/ const char *init_name; /* initial name of the device */ /*设备类型*/ const struct device_type *type; struct mutex mutex; /* mutex to

错题集

♀尐吖头ヾ 提交于 2019-12-29 20:36:17
1设有以下结构体类型说明和变量定义,则变量a在内存中所占的字节数是 。(VC环境中) struct stud {char num[6]; int s[4]; double ave; }a; 标准答案: 32 我的答案 24 这个主要考的是结构体所占内存的相关内容 注:排列时要以最大字节数的类型为基准,来排列 不够的就补位。 此题最大字节数是8所以以8为基准第一排6+2 第二排8 第三排8 第四排8 所以一共占字节4*8=32.所以答案是32字节。 2. 对于两个类型相同的指针变量,不能进行( )运算? A: + B: - C: = D: == 标准答案:A 您的答案:D 注两个指针变量不能相加。 3. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。 A: 地址传递 B: 单向值传递 C: 由实参传给形参,再由形参传回实参 D: 传递方式由用户指定 标准答案:B 您的答案:D . 4. 若fp是指向某文件的指针,且已经读到文件的末尾,则函数feof(fp)的返回值是( ) A: EOF B: NULL C: 0 D: 非零值 标准答案:D 您的答案:A 5. 以下关于return语句的叙述中正确的是( ) A: 一个自定义函数中必须有一条return语句 B: 一个自定义函数中可以根据不同情况设置多条return语句 C:

MFC中CString转成char *

五迷三道 提交于 2019-12-29 20:06:55
转换之前,首先了解几点: 工程的编码属性不同,CString的存储方式也不一样。 a) 比如unicode字符集时,CString会被定义成CStringW,其内部是wchar宽字符。每个英文字母也会占用2个字节,如果不转换直接输出则只能输出第一个字符(第二个字符为0被截断了)。 b) 多字节时,CString被定义为CStringA,其内部是char单字节字符。 CString有一个GetBuffer()函数, 可以获取指向字符缓冲区的非常量指针。 并且会锁定缓冲区长度。如果程序后面还要操作这个CString,且会修改长度。则一定记得要调用ReleaseBuffer()解除锁定。如果只是读取,则不用。当GetBuffer()有参数时,如果输入值小于缓冲区长度,则返回的指针跟前面说的一样。如果大于当前长度,则系统会重新realloc一份大的空间,覆盖原来的位置,实现动态增长。 一些常用的代号。 char - A tchar - T bstr - OLE wchar - w const - C mfc自带的一些宏定义转换。比如CT2A表示从tchar转到char。CW2A表示从宽字符转为单字符。后续发展时,我们只需使用CT2A即可,它兼容包括了w。 下面开始介绍CString转为char *的几种方法,以unicode工程属性为例: 用%S进行宽字符输出或者格式化。 char

爬虫Larbin解析(二)——sequencer()

喜欢而已 提交于 2019-12-29 13:51:12
分析的函数: void sequencer() //位置:larbin-2.6.3/src/fetch/sequencer.ccvoid sequencer() { bool testPriority = true; if (space == 0) //unit space = 0 { space = global::inter->putAll(); } int still = space; if (still > maxPerCall) //#define maxPerCall 100 still = maxPerCall; while (still) { if (canGetUrl(&testPriority)) { --space; --still; } else { still = 0; } } } 所在的文件 larbin-2.6.3/src/fetch/sequencer.h、larbin-2.6.3/src/fetch/sequencer.cc // Larbin // Sebastien Ailleret // 15-11-99 -> 15-11-99 #ifndef SEQUENCER_H #define SEQUENCER_H /** only for debugging, handle with care */ extern uint space; /**

ORACLE基本数据类型总结

老子叫甜甜 提交于 2019-12-29 10:23:03
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。 在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。 查看数据库视图所包含的数据类型:SELECT * FROM DBA_TYPES WHERE OWNER IS NULL.具体细节情况参见 Oracle® Database SQL Language Quick Reference 10/11 g 或 官方文档 一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中

Oracle基本数据类型

大兔子大兔子 提交于 2019-12-29 10:22:42
一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。 所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。 1.1:CHAR类型 CHAR(size [BYTE | CHAR]) CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节,你可以查看数据库参数 NLS_LENGTH_SEMANTICS的值。 SQL Code SQL> show parameter nls_length_semantics; NAME TYPE VALUE ------------------ ----------- -----------------

Oracle数据类型

自闭症网瘾萝莉.ら 提交于 2019-12-29 10:22:23
Oracle数据类型 数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 Oracle推荐使用VARCHAR2 NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。

异常类之基类

六月ゝ 毕业季﹏ 提交于 2019-12-29 05:21:24
1.C++中的异常 C++异常处理语法元素 try-catch 语句 try 语句处理 正常 代码逻辑 (但有可能产生异常,产生异常时抛出异常并转到catch语句块里面的代码) catch 语句处理 异常 情况 try 语句中的 异常 由对应的 catch 语句处理 C++通过 throw 语句 抛出异常 信息(一般在try语句中) throw和return区别 throw异常的返回一个值,这个值就代表了异常, 抛到catch语句块 return正常的返回一个值 C++ 异常处理分析 (1) throw 抛出的异常 必须 被 catch 处理 当前函数 能够处理异常( 含有catch语句块 ) ,程序继续往下执行 当前函数 无法处理异常 ,则函数 停止执行 , 并返回,由上层函数进行处理了 。 (2)未被处理的异常会顺着函数调用栈向上传播,直到被处理为止,否则程序将停止执行。如果一直未处理则会到main函数,该函数中若果仍没有try..catch语句直接退出 (3)同 一个try语句 可以跟上 多个catch语句   ①catch语句可以定义具体处理的异常类型   ② 不同类型的异常由不同的catch语句负责处理 。   ③try语句中 可以抛出任何类型的异常   ④catch(…)用于处理所有类型的异常   ⑤任何异常都 只能被捕获(catch) 一次 。 (4