linux里字符串开头为空字符是什么意思

fishly_0 2012-06-04 09:37:05
看linux的代码时,看到类似于这样一行“
#define Name "\0test-control"
后面就将这个Name作为一个socket的名字,并且有进行字符串拷贝:memcy(NewBuf,Name,len);

我有2个问题:
1,"\0test-control" 这么一个字符串,如果不把开头的0去掉,后续代码处理不是会与问题?
2, 用memcy(NewBuf,Name,len);应该达不到拷贝字符串的效果吧


总之就是定义字符串时,第一字符为0,是有什么特别的用法么?


...全文
284 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishly_0 2012-06-05
  • 打赏
  • 举报
回复
结贴了,我去仔细看下这个字符串的使用流程,看是怎么回事。
fishly_0 2012-06-05
  • 打赏
  • 举报
回复
谢谢各位的回复。我就是一直没找到什么时候有把第一个\0给改写了,所以怀疑是不是linux里面(socket相关)是不是有相关的用法。
louyong0571 2012-06-04
  • 打赏
  • 举报
回复
个人认为应该是一种编码的技巧吧,要看实际的场景了。
justkk 2012-06-04
  • 打赏
  • 举报
回复
1、要看后续代码是怎么处理的
2、memcpy 是指定长度拷贝的,不关心字符串的\0表示
qq120848369 2012-06-04
  • 打赏
  • 举报
回复
可以拷贝,只不过\0之后都不会被打印, 字符串长度为0.
JoeBlackzqq 2012-06-04
  • 打赏
  • 举报
回复
1,如果不把开头的0去掉,那Name就相当于""
2, 用memcy(NewBuf,Name,len)==>会按len长度来copy,不管Name中是什么!

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧