delete

linux线程基本编程

你离开我真会死。 提交于 2021-02-01 04:02:30
索引: 1.创建线程pthread_create 2.等待线程结束pthread_join 3.分离线程pthread_detach 4.创建线程键pthread_key_create 5.删除线程键pthread_key_delete 6.设置线程数据pthread_setspecific 7.获取线程数据pthread_getspecific 8.获取线程标示符pthread_self 9.比较线程pthread_equal 10.一次执行pthread_once 11.出让执行权sched_yield 12.修改优先级pthread_setschedparam 13.获取优先级pthread_getschedparam 14.发送信号pthread_kill 15.设置线程掩码pthread_sigmask 16.终止线程pthread_exit 17.退出线程pthread_cancel 18.允许/禁止退出线程pthread_setcancelstate 19.设置退出类型pthread_setcanceltype 20.创建退出点pthread_testcancel 21.压入善后处理函数 22.弹出善后处理函数 -------------------------------------------------------------------------------

释放只有声明没有定义的对象,都是耍流氓

余生颓废 提交于 2021-01-14 00:35:36
defs.h 文件 class CFtBreakInfo; struct struc_file_status { HANDLE m_hFile; CFtBreakInfo *m_pBreakInfo; //在程序的其他的地方new出内存 struc_file_status(void) { m_hFile = INVALID_HANDLE_VALUE; m_pBreakInfo = NULL; }; ~struc_file_status() { /* 这里没法做到真正内存释放,即不会调用CFtBreakInfo的析构函数 解决方案,如下 */ if (m_pBreakInfo) delete m_pBreakInfo; m_pBreakInfo = NULL; } }; 解决方案: 增加defs.cpp #include "FtBreakInfo.h" /*将CFtBreakInfo结构的头文件包含进来,让delete有迹可寻*/ struc_file_status::~struc_file_status() { /* 这样不会有内存泄漏了 */ if (m_pBreakInfo) delete m_pBreakInfo; m_pBreakInfo = NULL; } 总结: 释放只有声明没有定义的对象,都是耍流氓!!!! 关于imcomplete type的说明: http:/

SQL中drop,delete和truncate分析

删除回忆录丶 提交于 2020-05-07 16:40:30
不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。 2. delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。 truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。 3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动 显然drop 语句将表所占用的空间全部释放。 truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。 4.速度,一般来说: drop> truncate > delete 5.安全性:小心使用 drop 和 truncate,尤其没有备份的时候.否则哭都来不及 使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用

at命令的用法

可紊 提交于 2020-04-08 07:06:43
at命令的用法 AT <time> /INTERACTIVE /EVERY:<dates> "<command>" 比如:我们每周的周一到周五6:00运行记事本程序,那么可以直接输入: AT 6:00 /every:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday notepad.exe AT 22:41 /every:M,T,W,Th,S shutdown -s AT 23:41 /every:F,Sa shutdown -s at 22:30 /interactive "E:\Install\Thunder\Thunder.exe" 如果你想了解AT使用方面更详细的内容可在命令行提示符中输入:AT /? At 列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。 at [\\computername] [[id] [/delete] | /delete [/yes]] at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command 参数 无 如果在没有参数的情况下使用,则 at 列出已计划的命令。 \\computername 指定远程计算机

ORACLE外部表总结

有些话、适合烂在心里 提交于 2020-04-07 20:13:12
ORACLE外部表总结 https://www.cnblogs.com/kerrycode/p/3894260.html 外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1) 位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。   (2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。   (3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。   (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS

new delete

为君一笑 提交于 2020-04-07 11:30:36
动态分配内存,类似于malloc/free 看一下如何使用 整形 int *p = new int; *p = 5; 或者在new的同时直接初始化 int *p = new int(5); delete p; 字符 char *p = new char('a'); delete p; 数组 int *p = new int[5]; delete []p 二维数组: 网上有资料这样new二维数组: int **p = new int[4][5] ; 这个方法是 错误 的 int[4][5]这个数据类型和 **p并不匹配 我们可以这样做 int **p = new int*[4]; for (auto i = 0; i < 4; i++) { p[i] = new int[5]; } 或者直接用向量 vector<vector<int>> p(4); p[1].push_back(4); p[1].push_back(6); p[2].push_back(1); cout<<p[1][1]<<endl; 来源: https://www.cnblogs.com/qifeng1024/p/12652002.html

Koa2实战练手(一)------ 学习RESTful API

风格不统一 提交于 2020-04-07 10:30:08
Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。目的是提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。 随着 Nodejs 新版本正式支持了async和await特性,Koa也立即在2017年2月发布了V2.0.0版本,我们称之为Koa2。 为了紧跟潮流,我们一起来通过一个实际的小项目来学习Koa2。 一、项目设计 既然是为了完整的学习Koa2,肯定不能只做一个“Hello world!”,我们可以做一个“Hello Koa2!”。呵呵,言归正传。什么项目既足够小,又能完整的学习一个web框架了? 当然是框架最流行的"Hello world"项目:TODO应用。 本次计划开发的TODO List应用使用前后端分离的设计,采用 REST (Representational State Transfer)架构。REST是 Roy Thomas Fielding 在2000年的论文 Architectural Styles and the Design of Network-based Software Architectures 中提出的。 二、学习REST 既然要采用REST架构,那么对REST我们就需要有一个较全面的了解。 2.1 REST设计原则 每个URI表示一种资源(resource)

关于跨域攻击和网络信标【转】

好久不见. 提交于 2020-04-06 19:45:55
关于跨域攻击和网络信标 一、什么是跨域访问 凡是与主站地址的域名、端口、协议不一致的其他请求,都可以认为是跨域访问。例如某网站的主站地址是 https://www.abc.com,但网页又... (地址是 https://img.abc.com ),这就是一种跨域访问。 二、浏览器的同源策略 所谓的同源策略是浏览器所遵循的一种安全约定。其限制了来自不同源的document或者脚本对当前的document读取或设置某些属性。具体限制如下: 跨源网络访问:AJAX请求。 跨源 DOM 访问:DOM。 跨源脚本API访问: iframe.contentWindow, window.parent, window.open 和 window.opener 如果没有这些限制,那我们就可以肆无忌惮的破坏其他网站的网页了。 三、如何进行跨域访问 跨域访问不是跨域攻击,业务上我们的确有跨域访问的需要。 #### 1、通过标签的src或者href属性。 例如< script >、< img >、< iframe >、< link >,访问静态资源文件虽然是跨域,但不受同源策略限制,因为使用的是标签访问。src属性访问的地址是一次性的get访问,且是主站主动设置,相对安全。 2、form表单提交。 form表单提交到其他域也是被允许的。因为form提交意味着跳转到新的站点,是一个有去无回的页面跳转

RESTful API 最佳实践

允我心安 提交于 2020-04-05 20:02:21
RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。 它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。 一、URL 设计 1.1 动词 + 宾语 RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。 比如,GET /articles这个命令,GET是动词,/articles是宾语。 动词通常就是五种 HTTP 方法,对应 CRUD 操作。 GET :读取(Read) POST:新建(Create) PUT :更新(Update) PATCH:更新(Update),通常是部分更新 DELETE:删除(Delete) 复制代码 根据 HTTP 规范,动词一律大写。 1.2 动词的覆盖 有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他三个方法(PUT、PATCH、DELETE)。 这时,客户端发出的 HTTP 请求,要加上X-HTTP-Method-Override属性,告诉服务器应该使用哪一个动词,覆盖POST方法。 根据 HTTP 规范,动词一律大写。 1.2 动词的覆盖 有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他三个方法(PUT、PATCH、DELETE)。 这时,客户端发出的 HTTP 请求

javascript对象

青春壹個敷衍的年華 提交于 2020-04-04 21:52:20
定义一个对象 能够使用对象直接量 var o = {name: 'hello'}; 键名加不加引號都能够,可是假设键名不是合法标识符。就必须加引號。 对象的属性之间用逗号分隔,ECMAScript 5规定最后一个属性后面能够加逗号(trailing comma)。也能够不加。可是,ECMAScript 3不同意加入逗号。所以假设要兼容老式浏览器(比方IE 8)。那就不能加这个逗号。 JavaScript原生提供一个Object对象(注意起首的O是大写),全部其它对象都继承自这个对象。Object本身也是一个构造函数。能够直接通过它来生成新对象。 var o = new Object(); // {} Object作为构造函数使用时,能够接受一个參数。假设该參数是一个对象。则直接返回这个对象。假设是一个原始类型的值,则返回该值相应的包装对象。 也能够使用 Object.create() var o3 = Object.create(null); 读写属性 假设使用方括号运算符,键名必须放在引號里面。否则会被当作变量处理。可是,数字键能够不加引號,由于会被当作字符串处理。 方括号运算符内部能够使用表达式,点号不行 o['hello' + ' world'] o[3+3] 使用in运算符检查属性是否声明 查看一个对象本身的全部属性,能够使用Object.keys方法 var o = {