分类: c

linux环境下使用C语言连接MySQL数据库

直接使用 gcc mysql.c  编译会提示找不到 mysql.h, 编译时需要指定 mysql.h 头文件和 mysql库的位置 先用 l 搜索一下你的linux上没有这两个文件

要是找不到,那么就证明没有安装mysqlclient类库。  执行以下命令安装:

安装过后 然后在…

Linux C进程间通信学习笔记

进程间通信: Linux环境下,进程之间,地址空间相互独立,进程和进程之间不能相互访问。想在进程间完成数据传输需要操作系统 提供特殊的方法:IPC(interprocess communication)如:文件、管道、信号、共享内存、消息队列、套接字、命名管道… 现今常用的进程间通信方式有三种: ① 管道 (使用最简单) ② 信号 (开销最小) *③ 共享映射区 (无血缘关系) ④ 本地套接字 (最稳定) =============================…

Linux C多线程,线程的分离与结合

线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性,即为非分离状态(即可结合的,joinable,需要回收),这种情况下,原有的线程等…

Linux系统调用_access函数的功能和使用

access():判断是否具有存取文件的权限 相关函数 stat,open,chmod,chown,setuid,setgid 头文件 #include<unistd.h> 定义函数

函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合, R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则…

Linux下C/C++开发必备技能_Makefile项目管理

Linux环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix 程序员。 在 Linux(unix)环 境下使用 GNU 的 make 工具能够比较容易的构建一个属于你自己的工程,整个工程的 编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一 些时间去完成一个或者多个称之为 Makefile 文件的编写。 在执行 make 之前,需要一个命名为 Makefile 文件来告诉 m…

linux下C/C++调试工具 gdb的使用详解

程序中除了一些一目了然的BUG之外,都需要要一定的调试手段来分析程序到底错在哪了。到目前为止我们的调试手段只有一种:根据程序执行是的出错现象假设错误原因,然后在代码中适当的为止使用printf打印出结果,如果结果和预期一样,那么就基本证明了自己已经找到了错误原因了。 今天我们就来用一种非常强大的调试工具gdb,可以完全操控程序的运行,可以随心所欲的让程序走就走,让它停就停,并且可以随时查看程序中所有的内部状态,比如各个变量的值,传给函数的参数,当前执行语句的位置等等 Linu…

C语言_共享库(动态库) 的制作和使用

什么是共享库 共享库的名字一般是 libxxx.so,共享库又称动态库; 机制:多个程序共享一份库文件,当程序实际调用到库函数时加载库函数。 优点:节省系统资源 缺点:相较于静态库调用库函数效率低。 场景: 存储资源要求较高   或者更新频繁的程序 相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码中,你的程序执行到相关函数时才调用函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。 动态库就是在程序载入内存的时候才真正把函数代码链接进来确定他们的地址,并…

C语言_静态库的制作和使用

一、什么是库 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。Linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态库和共享库的概念 在链接共享库时只是指定了动态链接器和该程序所需要的库文件,并没有真正的做链接,可执行文件中仍然是未定义的符号,需要在运行时做动态链接。 而在链接静态库时…