(一)概念 什么是函数库呢?一下子说概念大家可能不太熟悉,但是这实际上是大家在windows系统上经常见到的东西.没错,就是那些后缀为DLL的文件. linux上实际也有自己的函数库文件,文件类型为.a或是.so,前者是静态函数库,后者是动态函数库. 静态函数库和动态函数库有什么区别?静态函数库和动态函数库在编译的时候都需要用到,但是不同的是,静态函数库在和程序一起编译的时候会把自己的函数程序加到程序当中,编译完之后程序就不再需要这个函数库了.也就是说,静态函数库只在编译的时候使用.但是动态函数…
undefined reference to `tan' 但是已经包含了头文件 <math.h>了,可还是报错,说是找不到tan 这个问题的原因不是很清楚, 但是网上给出的方案,就是编译的时候 加上参数 -lm 有说l表示Lib ,m表示 math.h  , ****************************************************************************************************** 以下是一些说明 使用math.h…
转自:http://blog.csdn.net/u012365926/article/details/51446295 基本概念 什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主要是编译器.汇编器和连接器的不同),因此二者库的二进制是不兼容的. 本文仅限于介绍linux下的库. 库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载…
函数库文件也就是对 Object 文件(程序编译的中间文件)的打包文件.在 Unix 下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成.你可以以如下格式指定函数库文件及其组成: archive(member) 这个不是一个命令,而一个目标和依赖的定义.一般来说,这种用法基本上就是为了"ar"命令来服务的.如: foolib(hack.o) : hack.o ar cr foolib hack.o 如果要指定多个 membe…
专题文档汇总目录 Notes:用户空间时间相关接口函数: 类型 API 精度 说明 时间 time stime time_t 精度为秒级 逐渐要被淘汰.需要定义__ARCH_WANT_SYS_TIME才能支持. 设定时间的进程需具备CAP_SYS_TIME权限. gettimerofday settimeofday timeval 精度为微秒级别 设定时间的进程需具备CAP_SYS_TIME权限. tims clock   tims进程创建后使用的CPU时间数量. clock进程使用的总的CPU…
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE(2.29——3.6)构造一个简单的Linux系统MenuOS SECTION 1 Linux内核源代码简介 1.操作系统的两把宝剑(回顾上一讲) 中断上下文的切换——保存现场&恢复现场 进程上下文的切换 2.Linux内核源代码简介 打开内核源代码页面 arch/目录:支持不同CPU的源代码:其中的…
Linux就这个范儿 第18章  这里也是鼓乐笙箫  Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read  ,write方式会在用户空间和内核空间不断拷贝数据,占用大量用户内存空间,效率不高 2.内存映射方式把设备文件的内存映射到应用程序中的内存空间,直接处理设备内存,这是一种高效的方式.mmap函数就是这种方式 如果程序中使用了mmap方法,需要使用munmap方法删除内存映射 3. 用户指针方式,是内存片段由应用程序自己分配. 18.2.1 羞辱柱与软…
Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cutler  Linux读写内存数据的三种方式 台湾作家林清玄在接受记者采访的时候,如此评价自己30多年写作生涯:“第一个十年我才华横溢,‘贼光闪现’,令周边黯然失色:第二个十年,我终于‘宝光现形’,不再去抢风头,反而与身边的美丽相得益彰:进入第三个十年,繁华落尽见真醇,我进入了‘醇光初现’的阶段,真正…
一 安装curses库 如果你的Linux系统中curses库,直接敲入命令sudo apt-get install libncurses5-dev,然后就会自动安装curses库,安装好之后敲入命令: ls -l /usr/include/*curses.h,我上面显示的是这样: 二 curses库有什么作用 curses函数库能够优化光标的移动并最小化需要对屏幕进行的刷新,从而也减少了必须向字符终端发送的字符数目. 三 认识curses库 1:curses函数库用两个数据结构来映射终端屏幕,…
fedora20,安装yum install ncurses-devel 编译时:-lncurses 头文件:#include<curses.h> 参考:man ncurses \linux程序设计 一,屏幕 1, 以initscr()开始,以endwin();结束 WINDOW *initscr(void); //初始化 int endwin(void); // 退出curses, 返回OK/ERR 2, 输出到屏幕 int addch(const chtype ch); //当前位置add…
原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db section .text global _start _start: again: dec edi mov eax,edi add eax,0x30 ],al mov ecx,ft int 0x80 mov ebx,esp int 0x80 jnz again mov ecx,msg int 0x80 int…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔者前言: 最近发现这个被发明于1982年的方法在如今得到了极为广泛的应用,在提倡深度学习的时候,基于聚类的神经网络方法被众多人青睐.但是呢, 网上貌似木有人贴出关于SOM模型的R语言实现,我就抛砖引玉一下.一.SOM模型定义与优劣 自组织映射 ( Self Organization Map, SOM…
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linux系统本身自带的库,还是使用第三方源代码编译所产生的函数库,无论有意识还是无意识,我们在linux下使用c语言进行编程,其实多多少少都会和函数库进行接触. 将源代码编译成函数库之后,我们想要使用相关的函数,只要带上相关的函数库一起编译或运行就好,而不必须每次都将函数库的源代码进行编译——特别是当函数…
第四章 文件的基本管理和XFS文件系统备份恢复本节所讲内容:4.1 Linux系统目录结构和相对/绝对路径.4.2 创建/复制/删除文件,rm -rf / 意外事故4.3 查看文件内容的命令4.4 实战:xfs文件系统的备份和恢复 4.1 Linux系统目录结构和相对/绝对路径4.1.1系统目录结构在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根 c:\ d:\ e:\Linux只有一个根目录 使用tree命令查看linux目录结构,这个命令默认是没有安装的,需要…
<Linux内核分析>第三周学习报告                                    ——构造一个简单的Linux系统MenuOS 姓名:王玮怡  学号:20135116 第一节 Linux内核源代码简介 Linux内核源代码(重点关注arch/x86目录下的代码) 1.linux-3.18.6/init中存储很多内核启动相关的代码,其中main.c中的代码为整个内核启动的起点 2.main.c中,start_kernel函数相当于普通C程序的main函数,内核开始初始化…
<Linux内核分析>第三周学习笔记 构造一个简单的Linux系统MenuOS 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内核源代码简介 1.1 Linux内核源代码 arch:支持不同的CPU的源代码,其中的关键目录包括:Documentation.drivers.firewall.fs.include等 documentation:文档目录 fs…
动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入口地址.当一个 DLL 文件用 LoadLibrary 显式加载后,在任何时刻均可以通过调用 FreeLibrary 函数显式地从内存中把它给卸载. 动态调用使用的 Windows API 函数主要有 3 个, 分别是 LoadLibrary.…
#include <stdio.h> // void perror(const char *msg); #include <string.h> // char *strerror(int errnum); #include <errno.h> //errno   errno 是错误代码,在 errno.h头文件中: perror是错误输出函数,输出格式为:msg:errno对应的错误信息(加上一个换行符): strerror 是通过参数 errnum (就是errno)…
原文地址:https://www.cnblogs.com/westsoft/p/5936092.html 动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入口地址.当一个 DLL 文件用 LoadLibrary 显式加载后,在任何时刻均可以通过调用 FreeLibrary 函数显式地从内存中把它…
动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入口地址.当一个 DLL 文件用 LoadLibrary 显式加载后,在任何时刻均可以通过调用 FreeLibrary 函数显式地从内存中把它给卸载. 动态调用使用的 Windows API 函数主要有 3 个, 分别是 LoadLibrary.…
linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include <pthread.h> #define CreateThreadEx(tid,threadFun,args) pthread_create(tid, 0, threadFun, args) #define CloseHandle(ph) /* int pthread_create( //指向线程标识符的指针. pthread_t *restrict tidp, //设置线程属性.传…
MSDN对官方解释:这三个函数都返回最后生成的标识值. 但是,上述每个函数中定义的“最后”的作用域和会话有所不同. 1.IDENT_CURRENT 返回为某个会话和当前作用域中的指定表生成的最新标识值. 如果 IDENT_CURRENT 值为 NULL(因为表从未包含行或已被截断),IDENT_CURRENT 函数将返回种子值. 2.@@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插…
阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mysql:service mysqld start 3.创建管理员:mysqladmin -u root password abc,123 4.连接测试:mysql -u root -p 5.show databases; 看看默认的库有哪些 6.新建一个库,并进入新建的库:create databas…
我在看os_cpu_c.c代码时对下面这段话困惑了半天总是在百度的帮助下找到了答案 /*  申明几个函数,这里要注意最后三个函数需要注释掉,为什么呢?    OS_CPU_SysTickHandler()定义在os_cpu_c.c中,是SysTick中断的中断处理函数,    而stm32f10x_it.c,中已经有该中断函数的定义SysTick_Handler(),这里也就    不需要了,是不是很奇怪官方移植版为什么会这样弄吧,后面我会解释的.    OS_CPU_SysTickInit()…
Linux下C语言编程实现spwd函数 介绍 spwd函数 功能:显示当前目录路径 实现:通过编译执行该代码,可在终端中输出当前路径 代码实现 代码链接 代码托管链接:spwd.c 所需结构体.函数.系统调用等查询(前期准备) st_ino 执行指令查看stat:man 2 stat 其中用红框标注的引起了我的注意:ino_t st_ino /* inode number */ 而这一个结构体的成员表示,文件的索引信息(进入点),"number"告诉我们它是一个数字表示,而不是一个确切…
一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库,如下所示: MyEclipse自带的JSTL开发包: fn.tld就是EL函数库的对应的tld描述文件,如下图所示: 在页面中使用JSTL定义的EL函数:<%@taglib uri="http://java.su…
这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8) 2.四舍五入函数TRUNCATE(X,Y) TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. 若y设为负数,则截去(归零)x小数点左边起第…
在Linux的发行版本中,都存在一个/proc/目录,有的也称它为Proc文件系统.在 /proc 虚拟文件系统中存在一些可调节的内核参数.这个文件系统中的每个文件都表示一个或多个参数,它们可以通过 cat 工具进行读取,或使用 echo 命令进行修改.下面给出了几个可调节的参数是关于Linux TCP/IP 栈的参数,相关的帮助可以通过man tcp或info tcp获取.在这个目录中,包括了一些特殊的文件,不仅能用来反映内核的现行状态和查看硬件信息,而且,有些文件还允许用户来修改其中的内容,…
学习一下用法整理trim().ltrim().rtrim()的用法 trim().ltrim().rtrim()三个函数有两个作用,分别是: 一.去除字符串前后空格(基本用法) trim(string):去除指定字符串string的左右空格,当然,string中间有空格的时候是不会被去除 SELECT trim('    aaa  bbb  ccc     ')  trim FROM dual; TRIM ------- aaa  bbb  ccc ltrim(string).rtrim(str…
区分getchar(),getch(),getche()三个函数: 第一行是手动输入的,第二行是printf输出的. getch()和getche()这两个函数使用时要包含conio.h头文件: getch()函数,也是接收键盘输入的一个字符,但不用回车确认! getche函数,同样接收一个字符,不需要回车确认!但输入时明文显示(回显). 以上三个函数,请大家亲自上机即可理解,有问题随时留言!欢迎大家提问!…