Linux C常见函数

来源:互联网 发布:sql统计表行数 编辑:程序博客网 时间:2024/04/29 08:38

1、snprintf()

intsnprintf(char *str, size_t size, const char *format, ...)

所需头文件:#include<stdio.h>

函数描述

将可变个参数(...)按照format格式化成字符串,然后将其复制到str中。

(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0')

(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度。

函数返回值:

若成功则返回欲写入的字符串长度,若出错则返回负值

snprintf的返回值不同,sprintf的返回值是成功写入的字符串长度,此处需要谨慎处理!

例子:

#include<stdio.h>#include<stdlib.h>int main(){   char str[10]={0};  int nLen=snprintf(str,sizeof(str),"0123456789012345678");  printf("str=%s\n",str);  printf("nLen=%d\n",nLen);  return0;}
输出:

str=012345678

nLen=19

2、dlopen()

void * dlopen( const char * pathname, int mode ); 

所需头文件:#include<dlfcn.h>

函数描述

dlopen的()函数以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程。使用dlclose()来卸载打开的库。

mode:分为这两种 
RTLD_LAZY 暂缓决定,等有需要时再解出符号 
RTLD_NOW 立即决定,返回前解除所有未决定的符号。 

函数返回值
  打开错误返回NULL 
  成功,返回库引用 
  编译时候要加入 -ldl (指定dl

3dlsym()

void*dlsym(void* handle,const char* symbol)

所需头文件:#include<dlfcn.h>

函数描述

dlsym根据动态链接库操作句柄(handle)与符号(symbol),返回符号对应的地址。使用这个函数不但可以获取函数地址,也可以获取变量地址。

handle是由dlopen打开动态链接库后返回的指针symbol就是要求获取的函数或全局变量的名称。

4dlclose()

int dlclose (void *handle);

包含头文件:

#include <dlfcn.h>

函数描述:

dlclose用于关闭指定句柄的动态链接库,只有当此动态链接库的使用计数为0,才会真正被系统卸载。

5、write()

ssize_t write(int fd, const void *buf, size_t nbyte);

头文件:#include <unistd.h>

write函数把buf中nbyte个字节写入文件描述符fd所指的文档,成功时返回写的字节数,错误时返回-1.




















0 0
原创粉丝点击