linux c lib

ecvt, fcvt, gcvt: 转换浮点数到字符串, 主要是参数不同, ecvt, fcvt返回静态分配的buffer, 而gcvt返回到指定的buffer.

 

sbrk:增量式改变数据段大小, 参数为0: 返回当前数据段的位置

 

getpagesize: 取得分页大小

 

ftime: 返回当前时间以秒, 毫秒为单位

 

strftime: 格式化time tm到指定的buffer

 

time: 返回指定命令和命令参数运行占用的时间, 可指定格式

 

bcopy, bcmp, bzero:  内存处理(BSD 函数, 符合posix, 不在ansi c库中)

跟memcpy, memset, memcmp相似, 后者是c90之后的标准c的函数

 

 

ffs: 返回整数中的第一个被设置的位, 低位开始

 

index: 返回字符串中第一个指定字符的位置

rindex: 返回字符串中最后一个指定字符串的位置

strcasecmp: 忽略大小写比较

 

memfrob: 对指定内存起始加密,用42异或

 

strdup: 复制字串到malloc内存(由strdup产生),可用free释放

 

frexp: 将浮点数转为底数和指数

 

hypot: 计算直角三角形斜边长

 

ldexp: 计算2的x次方

modf: 将浮点数拆分成整数和小数

 

加密:

crypt

getpasswd

 

bsearch:二分法查找,需要先按升序排列数组(qsort), 和指定比较函数。

 

hcreate, hsearch, hdestroy哈希函数

 

insque, rmque: 插入,删除元素到list, 这个元素前两个字段是forward, 和back(next, prev)

 

 

lfind, lsearch: 线性查找, 区别如果查不到, lsearch会将元素查到表的末尾, 而ifind不

 

tdelete, tfind, tsearch, twalk, tdestroy : 二叉树管理函数

 

flock:锁定, 解锁文件

 

 fdopen:将文件描述符转换成文件指针,   int到FILE *, 可指定模式

fileno:获取文件流的文件描述符

 

 

getpid:获得进程pid, 对于linux, 实际是领头进程pid, 可用linux系统调用获得实际的pid:syscall __NR_gettid

或者:

struct pthread_int
{
void *skip[18];
pid_t tid;
};

struct pthread_int * pt = (struct pthread_int *) pthread_self();
pt->tid 就是线程的pid,你可以拿这个pt->tid向线程用tkill发信号。 

 

 

 quotactl: 控制磁盘配额

 

 mlock/munlock: 内存页面加锁

 

mprotect: 控制内存读写

 

getpeername: 获取对方socket name,

getsocketname: 获取socket name

shutdown: 关闭socket

sendfile: 在文件和端口之间传送文件

 

 setjmp: 设置跳转栈

longjmp: 跳到setjmp指定的地方

 

realpath:将相对目录转换为绝对目录

 

htonl: 32bit, 将网络顺序转换成host顺序

htons: 16位

 

inet_addr, inet_aton, inet_ntoa: 二进制和网络地址转换

 

openlog, syslog, closelog: 日志处理

 

regerror, regcomp, regexec, regfree: 正则表达式处理

见: http://apps.hi.baidu.com/share/detail/46827495

http://www.yesky.com/imagesnew/software/vbscript/html/jsgrpRegExpSyntax.htm

http://baike.baidu.com/view/94238.htm

http://www.cnblogs.com/dragon/archive/2006/05/08/394078.html

 

 

getopt:http://baike.baidu.com/view/2406693.htm

 

isatty:检查文件描述符所指是否是一个terminal

http://hi.baidu.com/ilotus_y/blog/item/2c61e8df377feb14485403fb.html

 

 

 

poll, select, fcntl, epoll:多路i/o查询, poll/epoll效率较高。占用系统资源少。

 

 access: 进程检查文件的访问权限, 读,写,执行,存在等。

 

几个用于比较的函数:

 http://www.cnljh.com/clib/string/bcmp.html

 

 参考:

 http://wenku.baidu.com/view/a63faeea998fcc22bcd10d18.html

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux ALSA-Lib库是用于读取和处理音频的开源库。它提供了一套API,可以让开发者通过 C/C++ 编程语言访问 Linux 系统中的音频设备。 ALSA-Lib 可以实现多种音频设备的读写,包括内置音频硬件,外部 USB 音频设备以及蓝牙音频。 ALSA-Lib 提供了一个叫做alsa-lib.h的头文件,这个头文件包含了常用的 ALSA-Lib API 函数。开发者可以根据具体需求来选择合适的函数,最常用的是snd_pcm_open()、snd_pcm_hw_params_set_xxx()、snd_pcm_writei()和snd_pcm_close(),这些函数分别用于打开、设置参数、写数据和关闭音频设备。 ALSA-Lib 提供的多种API函数使得开发者可以对音频进行多种高级操作。比如,开发者可以通过snd_pcm_drop()中止当前播放操作,通过snd_pcm_pause()暂停播放,通过snd_pcm_prepare()准备播放,还可以通过调用snd_pcm_avail_update()获取当前音频设备的缓冲区状态。 读取音频数据可以通过snd_pcm_readi()函数实现,这个函数会一次性从设备中读取指定数量的音频采样,并将其存储在一个指定的缓冲区中。开发者还可以选择使用snd_pcm_mmap_readi()和snd_pcm_mmap_begin()来读取音频采样,这两个函数可以实现更高效的读取。 在开发 Linux 音频应用程序时,ALSA-Lib 是非常重要的组件。通过掌握 ALSA-Lib 的 API 函数,开发者可以实现快速、高效地读取和处理音频数据。因此,熟悉 ALSA-LibLinux 音频开发工程师的必备技能之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值