您的位置:首页 > 运维架构 > Linux

Linux进程通信中的memset ftok

2015-12-29 11:43 561 查看
memset()

void *memset(void *s, int ch, size_t n);

功能: 将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值.

例如:char buffer[20];

memset(buffer,0,sizeof(char)*20);

memcpy(buffer,"123",3);

//这一条的memset并不多余,memcpy并没把buffer全部覆盖,如果没有memset,用printf打印buffer会有乱码甚至会出现段错误。

//如果此处是strcpy(buffer,"123");便不用memset, strcpy虽然不会覆盖buffer但是会拷贝字符串结束符

ftok()

消息队列和有名管道一样,都是文件,因此为获取消息队列的键值,我们可以通过ftok(函数)将文件转化为键值

#include<sys/types.h>

#include<sys/ipc.h>

key_t ftok(char*pathname, int id)

功能:返回文件名对应的键值

pathname:文件名(含路径)

id:项目名(不为0即可)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: