bzero

原型:extern void bzero(void *s, int n);

用法:#include

功能:置字节字符串s的前n个字节为零。

说明:bzero无返回值。

举例:        // bzero.c

#include

#include

int main()

{

struct

{

int a;

char s[5];

float f;

} tt;

char s[20];

bzero(&tt,sizeof(tt));    // struct initialization to zero        bzero(s,20);

clrscr();

printf("Initail Success");

getchar();

return 0;

}

========================================

memset

原型:

extern void *memset(void *buffer, int c, int count);

用法:#include

功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。

举例:        // memset.c

#include

#include

int main()

{

char *s="Golden Global View";

clrscr();

memset(s,'G',6);             printf("%s",s);

getchar();

return 0;

}

=======================================

setmem

原型:

extern void setmem(void *buf, unsigned int count, char ch);

用法:#include

功能:把buf所指内存区域前count个字节设置成字符ch。

说明:返回指向buf的指针。

举例:        // setmem.c

#include

#include

int main()

{

char *s="Golden Global View";

clrscr();

setmem(s,6,'G');

printf("%s",s);

getchar();

return 0;

}

=======================================

综述:

bcopy和memcpy、bzero和memset、bcmp和memcmp的差别在哪里?

bcopy、bzero和bcmp是传统BSD的函数,属于POSIX标准;mem*是C90(以及C99)标准的C函数。区别在于,如果你打算把程序弄到一个符合C90/C99,但是不符合POSIX标准的平台时,后者比较有优势。

NetBSD的代码中有很多地方使用mem*(他们更偏爱mem*,以利于移植),即使内核也是如此,而FreeBSD的内核中则尽量避免使用(希望尽可能避免在内核中出现较多的C函数)。如果你提交代码的话需要注意这些约定。

在memset和bzero初始化数据间,我很多时候选择bzero, memset的一个缺点是第二个参数和第三个参数需要记忆,需要记住哪个是值和哪个是大小(如果不想查手册的话), 不可以弄错。

bzero()和memset()

今天用到一个字符数组初始化函数,bzero(),因为比较生疏,于是在查本地的一个C/C++函数库的时候并未见此函数,于是便觉得自己拥有的CHM版的库函数软件包有点山寨了,可是当自己调试程序的时候却发现此函数始终通不过编译。被逼上网查它们的区别,得答案如下:

C has memset(), the Berkeley UNIX C library has bzero(). They are not

identical, and bzero() pre dates memset() but is not widely available (since

it's not part of standard C).

在LINUX平台上是支持bzero的,但是其并不在ANSI C中定义,也就是不属于C的库函数.

==========================================================================

From CSDN:

【问】网上查了是

#include

但是在vc6.0 和vs2005下还是报错,说bzero没有定义

【答】确实没有

可以自己定义一个

C/C++ code

#define bzero(a, b)              memset(a, 0, b)

bzero()是在linux平台下用的,可以用memset()函数代替,这样就跨平台了。哈哈...

实在要用就像楼上说的那样。

memset 用法 linux,bzero, memset ,setmem 区别相关推荐

  1. memset 用法 linux,memset用法与实现

    第二: 过度使用memset, 我想这些程序员可能有某种心理阴影, 他们惧怕未经初始化的内存, 所以他们会写出这样的代码: char buffer[20]; memset(buffer,  0,  s ...

  2. bzero memset置零的性能比较

    关于字符数组的初始化,在项目的压力测试中,发现性能明显下降,变怀疑在程序中的若干临时字符数组的初始化(使用bzero)身上.于是修改为首个字符置 零的方式而非全部置零的方式初始化,响应得到明显的提升. ...

  3. bzero, memset ,setmem 区别

    bzero   原型:extern void bzero(void *s, int n); 用法:#include <string.h> 功能:置字节字符串s的前n个字节为零.     说 ...

  4. bzero, memset ,setmem 区别【转】

    本文转载自:http://chang6520.blog.163.com/blog/static/112665875201302843359715/ bzero  原型: extern void bze ...

  5. c语言 bzero,bzero, memset ,setmem 区别(示例代码)

    bzero 原型: extern void bzero(void *s, int n); 用法: #include 功能:置字节字符串s的前n个字节为零. 说明:bzero无返回值. 举例: // b ...

  6. memset linux 头文件,linux中memset的正确用法

    [起因]希望对各种类型的数组进行初始化,避免野值 memset函数将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始 ...

  7. linux c memset 头文件,linux下的memset函数

    起因]希望对各种类型的数组进行初始化,避免野值 memset函数将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化 ...

  8. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  9. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

最新文章

  1. [Android问答] 开发环境问题集锦
  2. 案例 | 华仁药业数字化转型 致远互联打造数字化“中台”一条直线,映射出软件产业发展的辛酸与瓶颈。...
  3. Appium+RobotFrameWork测试环境搭建
  4. linux 查看服务器网络连接,1.3.2 查看Linux服务器的网络连接(2)
  5. nginx 下配置使用Thinkphp5解决跨目录活动并且设置网站根目录
  6. JMetro版本11.6和8.6发布
  7. win10右键一直转圈_Win10总是自动更新?教你如何关掉自动更新
  8. 属性子集选择的基本启发方法_一文看懂数据预处理最重要的3种思想和方法
  9. linux代码段映射,bss,data,text,rodata,堆,栈,常量段与其各段在物理存储中关系
  10. 设计模式之单例模式的多重实现
  11. 阿里云linux绑定域名
  12. 辣鸡,你怎么天天就会 try...catch ?试试这个
  13. 华为培训视频-AAA培训
  14. 解决flume整合kafka报错Attempt to heart beat failed since member id is not valid, reset it and try to re-jo
  15. opencv中step、step1、size、elemSize以及elemSize1区别
  16. windows 11激活Office提示网络问题无法激活
  17. myeclipse cracker
  18. python新手入门程序——实验5
  19. 做好PMC管理三大工作,轻松搞定生产计划与物料控制
  20. EditText.setSelection方法的作用

热门文章

  1. swjtucpc—嘉然今天吃什么
  2. 计算机保研英语介绍,关于计算机保研面试英文自我介绍
  3. anonymous unions
  4. 计算机考研历年真题在手,大大提高上车几率,408历年真题
  5. 在难熬的时刻也将过去
  6. 小米加速5G普及,为年轻人定制轻薄多彩的小米10青春版手机?
  7. mysql 安顺寻_16名被拐宝贝到安顺寻亲 6个“贵州娃”与家人团圆
  8. JSP+ssm计算机毕业设计社区门诊管理系统的设计与实现f79p6【源码、数据库、LW、部署】
  9. winxp一键锁定计算机,WinXP中设置快捷键锁定计算机的方法
  10. Tp5400单节锂离子电池充电器和恒定5V升压控制器芯片TP拓微