Linux进程通信中的memset ftok

本文介绍了C语言中用于内存操作的重要函数memset的功能与使用场景,并详细解释了如何利用ftok函数从文件名中获取键值,适用于消息队列等进程间通信的应用开发。

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即可)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值