免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yyykkk1229
打印 上一主题 下一主题

关于字符串的长度问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-08-20 16:47 |只看该作者

回复 #10 web_surf 的帖子

非常感谢您的答复,我是这样处理的 while(((*Message_Ptr) != '\0')&&(bytes_read < count)),我加上这么一句,因为我在测试程序中字符串的大小是能确定的,通过判断bytes_read的值来跳出循环,不考虑测试程序中count了...

论坛徽章:
0
12 [报告]
发表于 2008-08-20 16:48 |只看该作者
麻烦帮忙看下我这种做法是否正确,有什么缺陷,我只是追求把功能实现了

论坛徽章:
0
13 [报告]
发表于 2008-08-20 16:57 |只看该作者

回复 #12 yyykkk1229 的帖子

你到底要实现什么功能,你现在到问题是什么,可以说清楚一点吗?

论坛徽章:
0
14 [报告]
发表于 2008-08-20 17:07 |只看该作者

回复 #13 web_surf 的帖子

设备程序和应用程序之间的连接
我在应用程序中定义了一个字符串,假设只有10个字节,我想把设备程序中的字符串read到应用程序中,由于应用程序的字符串只有10个字节,我想在设备程序中的read函数里加一个界限,当设备程序里的字符串>10时,只传递10个字符,当<10时,能够完整的传递,我的问题是,如何在read函数中加上类似界限的一个东西
我是新手,表达的不太好,麻烦包容下,谢谢

论坛徽章:
0
15 [报告]
发表于 2008-08-20 17:12 |只看该作者

回复 #14 yyykkk1229 的帖子

char *kbuf = "hello world";

static ssize_t read_test(struct file *file,char *outbuf,size_t count,loff_t *f_pos)
{
    int real_count;
    int kbuf_count;

    if(verify_area(VERIFY_WRITE,outbuf,count)==-EFAULT)
        return -EFAULT;
   
    kbuf_count = strlen(kbuf);
    real_count = kbuf_count < count ? kbuf_count : count;

    copy_to_user(outbuf, kbuf, real_count);  
   
    return real_count;
}

论坛徽章:
0
16 [报告]
发表于 2008-08-20 17:22 |只看该作者

回复 #15 web_surf 的帖子

非常感谢,那我在应用程序的read(testdev, outbuf, ???),???这个地方应该填写什么呢?

论坛徽章:
0
17 [报告]
发表于 2008-08-20 17:25 |只看该作者

回复 #16 yyykkk1229 的帖子

returned_len = read(testdev, outbuf, outbuf_len);

论坛徽章:
0
18 [报告]
发表于 2008-08-20 17:31 |只看该作者
感谢感谢感谢感谢感谢感谢感谢

论坛徽章:
0
19 [报告]
发表于 2008-08-20 21:58 |只看该作者
原帖由 happy_fish100 于 2008-8-20 15:50 发表
如果使用C,
char kbuf[1024] = "hello world";
这样赋值有点问题。
最好改用strcpy来拷贝字符串。



这样赋值有问题吗???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP