第三章 文件I/O 第四章 文件和目录 第三章 文件I/O open(const char *pathname, int oflag, .../*mode_t mode*/) oflag除了熟悉的O_CREATE, O_RDONLY, O_WRONLY, O_RDWR外, 还有 O_APPEND 追加 O_EXCL 如果存在就会报错,不存在就创建,原子性操作 O_SYNC 保证数据一定落到硬盘上,但实际上很多系统并没有实现这个 O_TRUNC 成功打开后,且有写权限时,把长度截断到0 进程关闭时会自动关闭进程打开的所有fd. 可利用lseek来把cur位置往后移动,创建空洞文件,中间全为0. read和write是不带buff的,最优buff通常都是4096字节,即页大小. 文件的i节点中记录了文件的所有者,文件长度,文件所在的设备等,所以多个进程同时写一个文件时,相当于对i节点做原子操作. 由于历史原因,O_RDONLY,O_WRONLY并不是恰好不同的二进制位,所以要判断时必须 val & O_ACCMODE . int dup(fd) 用于从fd复制一个新的,并返回,等价
发表于 2018-04-23 08:41:48 | 条评论 | 阅读次数:57
事务 四大性质 原子性 隔离性 一致性 持久性 四种隔离等级 未提交读(READ UNCOMMITED) 提交读(READ COMMITED) 可重复读(REPEATABLE READ) 序列化(SERIALIZABLE) 锁机制 两种角度看 乐观锁 悲观锁 三种锁粒度 行级锁 页级锁 表级锁 行锁的两种实现 共享锁(读锁, S锁) 排他锁(写锁, X锁) 行锁与表锁互存 意向共享锁 意向排他锁 GAP锁 索引 普通索引 唯一索引 主键索引 组合索引 聚簇索引 二级索引 总结 键 超键 候选键 主键 外键 范式 第一范式 第二范式 第三范式 第四范式 反范式 其他优化方式 varchar与text的区别 插入更新优化 bulk_insert_buffer_size concurrent_insert delay_key_write delayed_insert_limit 其他参考资料 事务 四大性质 原子性 对于事务中的语句,要么全部执行,要么一句都没有执行。 隔离性 不同事务之间应该互相独
发表于 2017-05-20 21:56:41 | 条评论 | 阅读次数:101
#按TAB可以补全terminal中的文件名#通常安装的带有界面的程序包都在/opt目录中#ctrl+d退出终端,以及输入EOF#ctrl+shift+v 粘贴#ctrl+shift+d 复制#运行内容的时候,在最后面加上&,就会异步运行./google.sh & #异步运行脚本dpkg -i 安装包的名字 #安装.deb程序ls -l #查看带有权限的文件浏览which 命令 #查看命令的目录#修改~/.bashrc 用户自己的启动项#加入:export PATH=$PATH:/etc/apache/binls -s A B #把A内容建立一个硬链接到Bls A B #把A内容建立一个软链接到Balias #查看别名unalias #取消别名alias ll='ls -l' #定义别名diff a.txt b.txt #比较两个文本文件的内容./main > output.txt #把输出输出到outputcat input.txt | ./main #把input.txt当做标准输入给main运行history #查看曾经输入过哪些命令export HISTTIMEFORMA
发表于 2017-05-16 23:41:13 | 条评论 | 阅读次数:179
登录和关于用户的操作 mysql -u root -p #登录mysqlcreate user 'qwb'@'%' IDENTIFIED BY 'xxxxxx'; #创建一个用户,密码是后面的#后面表示允许访问的地址,如果要允许外部访问就这样写,如果想只允许内部访问,就设置成localhostdrop user '用户名'; #删除用户grant all on shujuku.* to qwb; #给某个用户赋值整个shujuku的权限grant select,insert,update,delete on book.* to test2@localhost Identified by ""; #还可以直接创建账号quit; #退出 数据库操作 show databases; #显示所有数据库use databases; #选择databases这个数据库#下面需要直接在命令行里运行mysqladmin -u root -p create new_databases; #创建一个新的数据库表mysqladmin -u root -p drop new_databases; #从删库到跑路mysq
发表于 2017-05-15 21:03:18 | 条评论 | 阅读次数:183
之前服务器是用windows server的,当时觉得windows server比较方便。 之后发现windows server的防御不是一般的弱,终于有一天被黑了,然后在电脑里挂了一堆程序,还把apache搞坏了,CPU每天日常100% T^T,刚好最近自己电脑装了双系统开始用linux了,所以就装了一个CentOS然后自己手动把环境装了一下。 由于是装完之后才来写博客记录的(唉),所以只能说是按回忆记录一下一些东西。 mysql php nginx 防火墙 mysql 好像现在都用mariadb了,腾讯云给的官方源中竟然没有mysql-server,于是手动在官网下载了mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar,根据自己的实际系统下载就好了 然后解压,按顺序安装,这里还有个技巧 sudo rpm -i xxx.rpm #安装某一个包,不会解决依赖关系sudo yum install xxx.rpm #安装一个包,会解决程序的依赖关系sudo service mysqld start #启动mysql的服务mysqladmin -u root pas
发表于 2017-05-15 18:31:45 | 条评论 | 阅读次数:129
5555,太堕落了,好久没有写博客了。 早就听说pb_ds这玩意了,有时候可以省很多东西。 好像最主要是为了替代set不能求第k大的问题。 感觉真的很方便啊~ //可并堆测试#include <ext/pb_ds/priority_queue.hpp>void ceshi_1() { //binary_heap_tag一般比std::priority_queue快 //pairing_heap_tag和std::priority_queue启发式合并时,速度差不多 __gnu_pbds::priority_queue<int, less<int>, __gnu_pbds::pairing_heap_tag> Q1, Q2; Q1.push(1); Q1.push(2); Q1.push(3); Q2.push(1); Q2.push(2); Q2.push(3); Q1.join(Q2);//pairing_heap_tag配对堆,zici O(1)合并 while(!Q1.empty()) { std::pr
发表于 2017-02-28 23:29:53 | 条评论 | 阅读次数:141
质数线性筛 O(1) gcd 可撤销的并查集 权值并查集 O(1)查询的lca 质数线性筛 复杂度:O(n)O(n)O(n) 以前没有深刻的理解这个,今天在看O(1)的gcd才发现这东西原来这么厉害。 每个数字只会被访问一次 每个合数可以拆分为 最小质数p*x 所以,我们要做到,筛数字的时候,只用那个最小的质数去筛,下面是代码: bool not_prime[MX];int prime[MX], prear;void prime_init() { prear = 0; not_prime[1] = 1; for(int i = 2; i < MX; i++) { if(!not_prime[i]) prime[++prear] = i; for(int j = 1; j <= prear && prime[j]*i < MX; j++) { not_prime[i * prime[j]] = 1; if(i % prime[j] == 0) break;
发表于 2017-02-13 18:22:41 | 条评论 | 阅读次数:367
Copyright © 2017 - 2018 qwb's blog
blog.csustacm.com All Rights Reserved
Powered by qwb Contact me