`
文章列表
alarm(设置信号传送闹钟) 相关函数 signal,sleep 表头文件 #include<unistd.h> 定义函数 unsigned int alarm(unsigned int seconds); 函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。 返回值 返回之前闹钟的剩余秒数,如果之前未设闹钟则返回0。 范例 #i ...
从事PHP有将近两年了,一直都是网页,想自己做个窗口程序玩玩。 有一些c/c++的基础,想搞一个跨平台的,开始想搞QT,但想想前景好像不太好,诺基亚都差不多了。 最后绝定玩下wxwidgets 首先从网上下载个IDE,codelite这个好像是专门为wxwidgets设计的,于是果断安装之。 我安装是最全的版本,就是全有的那种。安装好后创建一个demo运行,会有很多的报错。基本是说找不到文件的。 在网上查,设置了environment variables等很多资料,本地是可以跑了,但把exe传到别电脑会发依赖文件的问题。 解除对*.dll动态链接库的方法:使用静态编译方式重新 ...
  pipe(建立管道)  相关函数 mkfifo,popen,read,write,fork 表头文件 #include<unistd.h> 定义函数 int pipe(int filedes[2]); 函数说明 pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端,filedes[1]则为管道的写入端。 返回值 若成功则返回零,否则返回-1,错误原因存于errno中。 错误代码 EMFILE 进程已用完文件描述词 ...
注:为什么要说目录文件?其实在linux中目录也是一种文件,只是它的内容是上级的目录和当前目录下的文件信息等,详情可以看看相关深入的书籍   opendir(打开目录) 相关函数 open,readdir,closedir,rewinddir,seekdir,telldir,scandir 表头文件 #include<sys/types.h>#include<dirent.h> 定义函数 DIR * opendir(const char * name); 函数说明 opendir()用来打 ...
access(判断是否具有存取文件的权限)   相关函数 stat,open,chmod,chown,setuid,setgid 表头文件 #include<unistd.h> 定义函数 int access(const char * pathname,int mode); 函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则是用 ...
  open(打开文件)   相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include<sys/types.h>#include<sys/stat.h>#include<fcntl.h> 定义函数 int open( const char * pathname, int flags);int open( const char * pathname,int flags, mode_t mode); 函数说明 ...
1.pid_t fork(); (1)当一个进程调用了fork 以后,系统会创建一个子进程.这个子进程和父进程不同的地方只有他的进程ID 和父进程ID,其他的都是一样.就象符进程克隆(clone)自己一样. (2)为了区分父进程和子进程,我们必须跟踪fork 的返回 ...
1.进程的概念   (1)通俗的讲程序是一个包含可以执行代码的文件,是一个静态的文件.而进程是一个开始执行但是还没有结束的程序的实例.就是可执行文件的具体实现. 一个程序可能有许多进程,而每一个进程又可以有许多子进 ...
还记得一次面试中被人问到in 和 exists的区别,当然只是草草做答,现在来做下分析。 mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的 ...
MyISAM: 表锁:表级锁。注意不要让它成为瓶颈 不支持自动数据恢复:服务器崩溃或停电后,就应该在使用之前检查和执行可能的修复。 不支持事务:实际上,MyISAM甚至不保证单个命令会完成。如果在多行UPDATE的中途有错误发生,一些行会被更新,而另外一些则不会。 只有索引被缓存在内存中:MyISAM中缓存了MYSQL进程内部的索引,并保存在键缓冲区。操作系统缓存了表的数据,因此在MYSQL5.0中须进行昂贵的系统调用来取得它。 紧密存储:行被紧紧地保存在一起,这样磁盘上的数据就能行到小的磁盘占用和快速的全表扫描。 Memory 表锁:和MyISAM一样,但Memory表上的查 ...
聚集索引不是一种单独的索引类型,而是一种存储数据方式。其具体细节依赖于实现方式,但是InnoDB的聚集索引实际上在同样的结构中保存了B-Tree索引和数据行。 当表有聚集索引的时候,它的数据行实际保存在索引的叶子页中。术语“聚集”指实际的数据行和相关的键值都保存在一起。每个表只能有一个聚集索引,因为不能一次把行保存在两个地方。(但是,覆盖索引可以模拟多个聚集索引) 当前,SolidDB和InnoDB是唯一支持聚集索引的存储引擎。InnoDB按照主键进行聚集,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集 ...
有时需要索引很长的字符列,它会使索引变大而且变慢。一个策略就是模拟哈希索引。但是有时这也不够好,那? 通常可以索引开始的几个字符,而不是全部值,以节约空间并得到好的性能。这使索引需要的空间变小,但是也 ...
哈希索引(Hash Index)建立在哈希表的基础上,它只对使用了索引中的每一列的精确查找有用。对于每一行,存储引擎计算出了被索引的哈希码(Hash Code),它是一个较小的值,并且有可能和其他行的哈希码不同。它把哈希码保存在索引中,并且保存了一个指向哈希表中的每一行的指针。 在mysql中,只有memory存储引擎支持显式的哈希索引。如果多个值有相同的哈希码,索引就会把行指针以链表的方式保存在哈希表的同一条记录中。 哈希索引的细节还有很多,由于myISAM和innodb并不支持,所以在这里不详解。 下面着力讲解建立自己的哈希索引 想法非常简单,在标准的B-Tree索引 ...
如果在查询中没有隔离索引的列,mysql通常不会使用索引。“隔离“列意味着它不是表达式的一部分,也没有位于函数中。 例如: mysql>select id from test where id +1 =5; 我们能轻易地看出where子句中的id等4,但是mysql却不会帮你求解方程,这取决于自己。我们应该养成简化where子句的习惯,这样就会把被索引的列单独放在比较运算符的一边。 再例如: mysql>select ... where TO_DAYS(CURRENT_DATE) - TO_DAYS(date_col)<=10; 这个查询会查找dat ...
mysql提供了两种相似的数据类型:DATETIME和TIMESTAMP.对于很多应用,它们都能工作,但是在某些情况下,一种会好于另一种 DATETIME: 从1001到9999年,精度为秒。它把日期和时间封装到一个格式为YYYYMMDDHHMMSS的整数中,与时区无关。使用了8字节存储空间。 在默认情况下,mysql以一种可排序的,清楚的格式显示DATETIME值,例如2012-08-28 18:18:18。这种表示日期和时间的方式符合ANSI标准。 TIMESTAMP: 这和时间戳相同,只使用4个字节的存储空间,但它的范围比DATETIME小很多,1970到2038年。mysq ...
Global site tag (gtag.js) - Google Analytics