Linux高级系统编程
文章平均质量分 91
纳尔哒哒
这个作者很懒,什么都没留下…
展开
-
Linux高级系统编程-MySQL,使用C语言操作MySQL
完成对结果集的操作后,必须调用mysql_free_result()通过检查mysql_store_result()在mysql_store_result()mysql_real_connect()尝试与运行在主机上的。,但是如果在任何 情况下均调用 了mysql_store_result()如果句柄是由mysql_init()对于其他查询,不需要调用mysql_store_result()之后使用时,如果没有要检索的 行,mysql_fetch_row()释放由mysql_store_result()原创 2023-12-18 21:14:31 · 1583 阅读 · 1 评论 -
Linux高级系统编程-MySQL数据库基本使用语法
作用用于完成对数据库对象(数据库、数据表、视图、索引等)的创建、删除、修改。原创 2023-12-17 12:00:00 · 974 阅读 · 0 评论 -
Linux高级系统编程- mysql数据库安装及环境配置
SQL()结构化查询语言,用于存取、查询、更新数据以 及管理关系型数据库系统SQL是在1981年由IBM公司推出,一经推出基于其简洁的语法在数据库中得到了广泛的 应用,成为主流数据库的通用规范SQL由ANSI组织确定规范 在不同的数据库产品中遵守SQL的通用规范,但是也对SQL有一些不同的改进,形成了一 些数据库的专有指令MySQLlimitSQLServertopOraclerownum分类根据SQL指令完成的数据库操作的不同,可以将SQL指令分为四类。原创 2023-12-16 16:34:03 · 1219 阅读 · 0 评论 -
Liunx高级系统设计9-线程间同步与互斥
用于销毁一个读写锁,并释放所有相关联的资源(所谓的所有指的是pthread_rwlock_init() 自动申请的资源)3)对互斥锁进行加锁后,任何其他试图再次对互斥锁加锁的线程将会被阻塞,直到锁被释放。函数返回时, 解除阻塞并重新申请获取互斥锁pthread_mutex_lock(&mutex);如果没有写者持有该锁,并且没有写者阻塞在该锁上,则调用线程会获取读锁。如果没有写者持有该锁,并且没有写者读者持有该锁,则调用线程会获取写锁。对互斥锁上锁,若互斥锁已经上锁,则调用者阻塞,直到互斥锁解锁后再上锁。原创 2023-12-13 19:55:27 · 965 阅读 · 0 评论 -
Linux高级系统编程-线程
使调用线程与当前进程分离,分离后不代表此线程不依赖与当前进程,线程分离的目的 是将线程资源的回收工作交由系统自动来完成,也就是说当被分离的线程结束之后,系统会自动回收它的资源。Linux 下线程的属性是可以根据实际项目需要,进行设置,之前我们讨论的线程都是采 用线程的默认属性,默认属性已经可以解决绝大多数开发时遇到的问题。如我们对程序的性能提出更高的要求那么需要设置线程属性,比如可以通过设置线程栈的大小来降低内存的使用,增加最大线程个数。下,线程最是小的执行单位;线程的取消并不是实时的,而又一定的延时。原创 2023-12-12 19:43:47 · 1015 阅读 · 0 评论 -
Linux高级系统编程- 消息队列 与 内存共享
这样造成 读文件时需要先将文件页从磁盘拷贝到页缓存中,由于页缓存处在内核空间,不能被用 户进程直接寻址,所以还需要将页缓存中数据页再次拷贝到内存对应的用户空间中。而之后访问数据时发现内存中并无数据而发起的缺 页异常过程,可以通过已经建立好的映射关系,只使用一次数据拷贝,就从磁盘中将数 据传入内存的用户空间中,供进程使用。在内核空间不能直接访问,必须要先拷贝至内核空间对应的主存, 再写回磁盘中(延迟写回),也是需要两次数据拷贝。6、每个消息队列都有消息队列标识符,消息队列的标识符在整个系统中是唯一的。原创 2023-12-11 20:03:00 · 1128 阅读 · 0 评论 -
Linux高级系统编程中的系统调用
是整个计算机系统,操作系统内核、及其其他所有正在运 行的程序,都会因为你操作失误而受到不可挽回的错误,那么你只有重启整个计算机才 行 而对于 硬件的操作 是非常复杂的,参数众多,出问题的几率相当大,必须及其谨 慎的进行操作,这对于个人开发者来说是个艰巨的任务,同时个人开发者在这方面也是 不被信任的。,其内部封 装的是内核中的系统函数open() 因为这个需求,硬件设备商直接提供了硬件级别的支持,做法就是对 CPU。系统调用是需要时间的,程序中频繁的使用系统调用会降低程序的运行效率。原创 2023-12-05 20:28:43 · 1147 阅读 · 0 评论 -
LInux高级系统编程-4 信号
所需头文件函数//将set集合置空//将所有信号加入set集合//将signo信号加入到set 集合//从set集合中移除signo 信号//判断信号是否存在于 集合中。原创 2023-12-07 20:16:45 · 1306 阅读 · 0 评论 -
Liunx高级程序设计-Shell -1
如果有,直接进入,提示请输入一个字符串,并按此字符串创建一个文件,如果此。这类脚本无需用户调用,系统会在合适的时候调用,如:/etc/profile。``:反引号中的内容作为系统命令,并执行其内容,可以替换输出为一个变量。"$$"变量最常见的用途是用作临时文件的名字以保证临时文件不会重复。文件已存在,提示重新输入,重复三次自动退出,不存在创建完毕,退出。这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等。无论是系统调用的还是需要我们自己调用的,其语法规则都一样。原创 2023-12-04 20:25:04 · 865 阅读 · 0 评论 -
Linux高级系统编程-3 进程
父子进程,系统允许一个进程可以创建新进程,该进程即为新进程的父进程,新进程即为子进程。原创 2023-12-06 19:57:34 · 1008 阅读 · 0 评论 -
Linux高级系统编程 - 5 管道
无名管道与有名管道的使用场景1,无名管道应用与有血缘关系的进程中2,有名管道应用与没有血缘关系的进程中无名管道与有名管道的区别1,无名管道基于内存无需文件管理系统2,有名管道基于文件和内存需要文件管理系统dup2作用:复制文件描述意义:可以实现文件的重定向。原创 2023-12-08 17:44:50 · 1028 阅读 · 0 评论