自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (6)
  • 收藏
  • 关注

原创 《Linux系统调用:sigaction,sigqueue》

一、介绍从UNIX系统继承过来的信号(SIGHUP~SIGSYS,前32个)都是不可靠信号,不支持排队(多次发送相同的信号,进程可能只能收到一次,可能会丢失)。SIGRTMIN 至 SIGRTMAX 的信号支持排队(发多少次, 就可以收到多少次, 不会丢失),故称为可靠信号。可靠信号就是实时信号,非可靠信号就是非实时信号。signal()函数只能提供简单的信号安装操作,使用 sig...

2019-12-30 17:54:14 319

原创 《Linux系统调用:sigprocmask,sigpending》

一、介绍信号阻塞集也称信号屏蔽集、信号掩码。每个进程都有一个阻塞集,创建子进程时子进程将继承父进程的阻塞集。信号阻塞集用来描述哪些信号递送到该进程的时候被阻塞(在信号发生时记住它,直到进程准备好时再将信号通知进程)。所谓阻塞并不是禁止传送信号, 而是暂缓信号的传送。若将被阻塞的信号从信号阻塞集中删除,且对应的信号在被阻塞时发生了,进程将会收到相应的信号。我们可以通过 sigproc...

2019-12-30 16:08:13 363 1

原创 《Linux系统调用:sigemptyset,sigfillset,sigaddset,sigdelset》

一、介绍多个信号可使用一个称之为信号集的数据结构来表示。(如果了解select,poll 是不是想到有点类似监视fd的东西?)信号集是为了方便对多个信号进行处理,一个用户进程常常需要对多个信号做出处理,在 Linux系统中引入了信号集(信号的集合)。这个信号集有点类似于我们的 QQ 群,一个个的信号相当于 QQ 群里的一个个好友。信号集是用来表示多个信号的数据类型(sigset_t)...

2019-12-30 15:43:36 1916

原创 《Linux系统调用:strsignal,psignal》

一、介绍每个信号都要一串与之相关的打印说明,这些描述位于数组sys_siglist[]中,但是相较于直接引用sys_siglist而已推荐使用strsignal(),因为strsignal()会对边界检查,如果指向存在信号返回可打印信息,如果不存在的信号打印错误字符串strsignal(sig) 返回指向信号的打印说明psignal()是可以传入自定义的字符串在返回指向信号打印说明前,...

2019-12-30 14:42:58 1138

原创 《Linux系统调用:kill,killpg》

一、介绍一个进程能够使用kill()向另外一个进程发送信号,接收信号进程和发送信号进程的所有者必须相同,或者发送信号进程的所有者是超级用户。如果进程无权发送信号给所请求的pid,那么kill调用失败,并设置errno为EPERM,若pid所指为一系列进程时,只要可以向其中之一发送信号,则kill调用成功。killpg()向某一进程组的所有成员发送一个信号。二、接口函数#i...

2019-12-30 14:15:15 1598

原创 《Linux系统调用:signal,pause》

一、介绍信号是事件发生时对进程的通知机制。信号是Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。信号与硬件中断的相似之处在于打断了程序执行的正常流程,大多数情况下,无法预测信号到达的精确时间。发往进程的多数信号通常是由内核发送的。信号可以...

2019-12-27 11:46:08 395

原创 《Linux系统调用:inotify API》

dd

2019-12-23 18:20:16 536

原创 《Linux系统调用:事件信号篇》

《Linux系统调用:事件篇》《Linux系统调用:inotify API》《Linux系统调用:signal,pause》《Linux系统调用:kill,killpg》《Linux系统调用:strsignal,psignal》《Linux系统调用:sigemptyset,sigfillset,...

2019-12-23 18:04:40 384

原创 《Linux系统调用:statvfs,fstatvfs》

dd

2019-12-23 17:38:13 1246

原创 《Linux系统调用:mount,umount,umount2》

dd

2019-12-23 17:37:06 2150

原创 《Linux系统调用:硬链接与符号链接》

dd

2019-12-23 17:12:22 205

原创 《Linux系统调用:getcwd,chdir,fchdir,chroot》

一、介绍getcwd() 获取进程的当前工作目录,得到的是绝对路径名chdir() 改变进程当前工作目录fchdir() 改变进程当前工作目录chroot() 改变进程的根目录,每个进程都有一个根目录,在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。解释绝对路径的...

2019-12-17 18:16:52 960

原创 《Linux系统调用:realpath,dirname,basename》

一、介绍realpath()作用是解析路径名dirname()作用是将路径名分解成目录部分basename()作用是将路径名分解成文件名部分,也就是dirname()+basename()就是完成的路径文件名二、接口函数#include <limits.h>#include <stdlib.h>// realpath()库函数对path(以空字符...

2019-12-17 18:15:34 1088

原创 《Linux系统调用:opendir,readdir,closedir,rewinddir》

一、介绍opendir()和 fdopendir() 都是打开一个目录返回DIR 类型指针(目录的句柄)closedir() 关闭打开的目录句柄readdir() 从一个目录流读取连续的条目,返回时并未对文件名进行排序,按照文件在目录中出现的天然次序,也就是文件系统向目录中添加文件的次序 "ls -f" 查看的一样rewinddir() 可将目录流回到起点,类型C语言库函数中的 rewin...

2019-12-17 17:27:18 807

原创 《Linux系统调用:initgroups,getgroups,setgroups》

dd

2019-12-17 17:27:10 1151

原创 《Linux系统调用:errno错误信息》

一、介绍由于很多系统调用函数调用出错的时候不仅仅是返回值判断还会设置errno全局共用的参数,所以这里总结errno各个参数的代表错误的含义,并且切记如果系统调用会改变errno变量,调用前要手动初始化 errno = 0, 包含的头文件是<errno.h><errno.h> 包含了: #include <bits/errno.h> #inc...

2019-12-17 11:24:02 643

原创 《Linux系统调用:mkdir,rmdir,rename,remove》

一、介绍mkdir()创建一个目录rmdir()删除一个目录rename()重命名文件或者目录remove()移除一个文件或者目录二、接口函数#include <sys/stat.h>#include <sys/types.h>int mkdir(const char *pathname, mode_t mode);参数: pathname...

2019-12-16 15:08:22 626

原创 《Linux系统调用:symlink,readlink》

一、介绍symlink()用于创建一个符号链接。readlink()读取符号链接中的内容。#include <unistd.h>int symlink(const char *target, const char *linkpath);参数: target: 指定的文件路径名,可以是相对路径也可以是绝对路径 linkpath: 要创建的符号链接文件路径名,如果存...

2019-12-16 15:06:45 1002

原创 《Linux系统调用:link,unlink》

一、介绍硬链接相当于别名,软连接相当于快捷方式。link()系统调用创建硬链接。不会对符号链接进行解引用。若oldpath属于符号链接,则会将newpath创建为指向相同符号链接文件的全新硬链接(就是newpath也是符号链接,指向oldpath所指向的同一文件)unlink()系统调用移除一个硬链接(删除一个文件名),如果此链接是指向文件的最后一个链接,那么还将移除文件本身unlink...

2019-12-16 15:05:09 544

原创 《Linux系统调用:chmod,fchmod》

dd

2019-12-16 14:57:37 509

原创 《Linux系统调用:access,umask》

一、介绍access()检查调用进程是否可以访问文件路径名。如果路径名是符号链接,则将其取消引用。不推荐使用,了解就行!umask 进程文件模式创建掩码:当进程新建文件或目录时候,该属性用于指明<屏蔽>哪些权限位。#include <unistd.h>// int access(const char *pathname, int mode);参数...

2019-12-16 14:57:03 324

原创 《Linux系统调用:chown,fchown,lchown》

dd

2019-12-16 14:55:02 695

原创 《Linux系统调用:utimensat,futimens》

dd

2019-12-16 14:54:09 612

原创 《Linux系统调用:utime,utimes,futimes,lutimes》

一、介绍文件的时间戳是存在i节点上的,比如用zip,unzip解压文件会改变文件的时间戳其实会调用下列的系统调用来改变的。utime用来改变文件的上次访问和修改时间戳utimes不同于utime是可以使用微妙级精度来指定时间值futimes使用打开的文件描述符lutimes使用文件名,有别于utime是对于连接文件不会去解引用,就是连接文件的本身时间戳二、接口函数#in...

2019-12-16 14:16:30 2339

原创 《Linux系统调用:stat,lstat,fstat》

一、介绍文件属性也是文件的元数据,包括文件的时间戳、文件所有权以及文件权限、inode等等。利用stat、fstat、lstat接口可以获取文件有关的信息,大部分提取从文件i节点(inode)。stat()会返回文件的相关信息lstat()和stat()类似,区别在于如果文件属于符号链接,那么返回的信息针对的是符号链接本身而不是连接指向的文件本身,那么这一点可以看出stat如果是...

2019-12-16 14:13:35 2389

原创 《Linux系统调用:getdomainname,gethostname》

一、接口介绍#include <unistd.h>// 获取NIS域名int getdomainname(char *name, size_t len);// 设置NIS域名int setdomainname(const char *name, size_t len);// 获取主机名int gethostname(char *name, size_t len)...

2019-12-13 14:24:38 561

原创 《Linux系统调用:fileno,fdopen》

一、介绍库函数: fileno(),fdopen(). 作用是混合使用库函数和系统函数调用进行文件的I/O操作。#include <stdio.h>//将一个文件流中对应打开的文件描述符fd返回int fileno(FILE *stream);参数: stream: fopen之类的函数打开的文件流返回值: 正确返回文件描述符fd,一般不会错误除非无效的...

2019-12-12 15:10:24 361

原创 《Linux系统调用:fsync,fdatasync,sync》

一、概念介绍我们前一篇setvbuf()了解到stdio库 I/O缓冲不同的模式,是运行在用户空间的,今天我们介绍的是系统调用函数fsync,fdatasync,sync,是直接控制内核缓冲!传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出...

2019-12-12 15:09:46 403

原创 《Linux系统调用:setvbuf,setbuf,setbuffer,setlinebuf,fflush》

一、介绍// stdio 库函数当操作磁盘文件时,缓冲大块数据以减少系统调用,C语言库函数I/O函数fprintf,fscanf(),fgets(),fputs(),fputc(),fgetc()等都是这么做的,stdio库函数可以使编程者免于自行处理对数据的缓冲。运行在用户空间!,下一篇说到运行在内核空间二、接口定义// 下列函数都是设置stdio流的缓冲模式#inclu...

2019-12-12 15:08:33 704

原创 《Linux系统调用:uname》

一、介绍uname()系统调用返回一系列关于主机系统的标识信息,存储到传入的 struct utsname *buf 中#include <sys/utsname.h>int uname(struct utsname *buf);参数: buf: 传入的struct utsname 的结构体指针 返回值: 成功返回0,错误-1并设置errno #de...

2019-12-12 15:01:36 372

原创 《Linux系统调用:pathconf,fpathconf》

一、介绍pathconf()和fpathconf()都是程序运行时候获取文件相关的限制。两者不同的点在于pathconf采用路径名方式来指定,fpathconf采用文件描述符。#include <unistd.h>long fpathconf(int fd, int name);参数: fd: 打开的文件描述符 name: 资源名称 _PC_XXX 系列常量...

2019-12-12 15:00:11 417

原创 《Linux系统调用:sysconf》

一、介绍首先要知道UNIX/LINUX 都是对系统特性和资源加以限制的系统限制和选项:比如: 1.一个进程能打开多少文件? 2.系统是否支持实时信号? 3.int类型变量存储最大值是多少? 4.一个程序的参数列表能有多大? 5.路劲名的长度或者文件名的长度是多长?上面限制只是冰山一角,这就是为什么linux对于很多人来说是比较难的,因为很多时...

2019-12-12 14:59:32 619

原创 Linux 系统设置 : zdump 命令详解

zdump时区输出器功能描述:  使用zdump命令可以在命令行上显示指定的每个区域名称的当前时间。命令语法:  zdump[选项][区域名]zdump命令选项含义 选项 含义 -v 在命令行上为每个区域名,输出可能的最早时间值,可能的最早时间一天以后的时间值,它们均是能被检测到的精确时刻的1秒前的时间值,可能的...

2019-12-12 10:37:03 1675

原创 《Linux系统调用:time,ctime》

一、介绍time() : 获取当前从1970-01-01 00:00:00 +0000 (UTC)到现在的秒数ctime() :将 time_t转换为可打印格式#include <time.h>// 1. 不管参数为不为NULL,返回的都是从 1970-01-01 00:00:00 +0000 (UTC)到现在的秒数// 和 gettimeofday 返...

2019-12-11 14:28:02 454

原创 《Linux系统调用:times,clock》

一、介绍软件时钟(jiffies)系统调用的精度受限于系统软件时钟,度量单位是jiffies,定义在内核代码的常量是HZ,这是CPU分配给进程的单位。进程时间是由一个进程使用的CPU时间量,分为用户时间和系统时间。可以用time命令查看运行的时间yexiang@ubuntu:<_Sys>$ time ./a.out real 0m0.009suser ...

2019-12-11 11:26:40 337

原创 《Linux系统调用:localtime,setlocale》

一、介绍时区:不同国家(有的甚至是同一国家不同地区)使用不同的时区和夏时制,对于要输入和输出时间的程序来说,必须对系统所处的时区和夏时制加以考虑,所有的细节已经由C语言库包办了。时区的定义:时区信息繁琐又多,出于这个原因系统没有将其直接编码于程序或者函数库中,而是标准格式保存于文件中并加以维护,这些文件位于 /usr/share/zoneinfo中。该目录下的每个文件都包含了一个...

2019-12-11 11:25:37 585

原创 《Linux系统调用:strftime,strptime》

一、介绍strftime 是将分解时间转包含日期和时间的字符串strptime 是将包含日期和时间的字符串转为分解时间#include <time.h>size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);参数: s:字符数组 m...

2019-12-11 11:23:17 721

原创 《Linux系统调用:gmtime,mktime,asctime》

一、介绍#include <time.h>char *asctime(const struct tm *tm);// 将time_t值转换为一个所谓的分解时间 struct tm 结构体struct tm *gmtime(const time_t *timep);// 把分解时间 struct tm结构体转换为 time_t 值time_t mktime(stru...

2019-12-11 11:22:09 409

原创 《Linux系统调用:gettimeofday,settimeofday,adjtime》

一、介绍程序一般关心的两种时间:真实时间:1. 从某个标准时间点开始到现在过了多久,也叫做日历时间。 unix系统内部对时间的表示是以自Epoch以来的秒数来度量的,Epoch即通用的协调时间(UTC,格林威治标准时间或GMT)的1970年1月1日早晨零点,差不多也是UNIX问世的时间。2. 记录某个周期操作进行度量,比如计算一个函数花费的时间等。 进程时间:一个进程所使...

2019-12-11 11:21:23 1687

原创 《Linux系统调用:getresuid,setresuid,getresgid,setresgid,setfsuid,setfsgid》

dd

2019-12-10 17:11:22 1635

Oracle内置函数大全.rar

Oracle内置函数大全,讲解Oracle内置函数使用,让你的Oracle更上一层楼, Oracle 基础入门

2020-12-16

Oracle常用函数集锦.rar

Oracle常用函数集锦,讲解Oracle常用函数使用,让你的Oracle更上一层楼, Oracle 基础入门

2020-12-16

SQL Server 关系数据库简介.rar

SQL Server 关系数据库简介, 讲解 SQL Server关系数据库的基础概念,如何使用等,入门基础

2020-12-16

SQL Server权限管理图文教程.rar

SQL Server 权限管理图文教程 , ppt 教程, 讲解SQL Server 中权限如何管理

2020-12-16

SQL Server 数据转换图文教程.rar

SQL Server 数据转换图文教程 , ppt 教程, 讲解SQL Server 中数据如何转换

2020-12-16

QTcpThreadPoolServiceTest

QT 的 信号、槽原生支持跨线程传递,其 QByteArray与C++11的shard_ptr均可用于跨线程数据块的生命周期管理。 试验中,设计了一个设置为CPU核心数的线程池,这个线程池可以异步接受N个数据生产者传入的数据,均衡的分配处理任务,处理后的数据返回给某1个或者几个消费者。有两种均衡方法。 一种是生产者粒度的均衡。同一个生产者的各批数据FIFO顺序不被打破,这需要判断,当处理线程队列中还有该生产者的数据时,不改变当前处理线程。 第二种是数据粒度的并行,某个生产者传来的数据被分配到不同的线程,不保证后到的数据后被处理(也可能先到的处理的慢,后到的快)

2020-12-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除