sys_write的疑问

发布于 2022-10-15 04:05:52 字数 206 浏览 36 评论 0

本帖最后由 chengmao2010 于 2011-06-17 11:29 编辑

帮帮忙
write和sys_write函数有什么关系?write是调用sys_write吗?
哪里可以看到write的原型啊?
另外sys_write中的count参数由哪里传递而来?可以自行设置吗?
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

寻找我们的幸福 2022-10-22 04:05:52

write 是系统调用。

sys_write 是对应到内核的实现。

最初的梦 2022-10-22 04:05:52

回复 2# Godbach

    那write中的count可以设定吗?如果可以的话该怎么去设置?

那请放手 2022-10-22 04:05:52

回复  Godbach

    那write中的count可以设定吗?如果可以的话该怎么去设置?
chengmao2010 发表于 2011-06-17 13:07

不是很明白你的意思。

NAME
       write - write to a file descriptor

SYNOPSIS
       #include <unistd.h>

       ssize_t write(int fd, const void *buf, size_t count);

这个 count 指的是一次写入多少字节,是需要调用者指定的。

因为看清所以看轻 2022-10-22 04:05:52

回复 4# Godbach

谢谢先!
    现在分析一个文件系统写文件比较慢的问题,直接向挂载目录复制文件,通过查看日志,发现每次写的字节数比较少
    我就想明白count这个值是如何得来的?直接拷贝时没有指定write的count值啊?有没有默认的参数呢?会不会和read读取的字节数有关呢?

栖迟 2022-10-22 04:05:52

你用 strace 跟踪一下 copy 的动作

倒带 2022-10-22 04:05:52

我简单跟踪了一下 copy 的动作,ext3 文件系统

90 read(3, "%PDF-1.4\r%\342\343\317\323\r\n176 0 obj <</Lin"..., 4096) = 4096
91 write(4, "%PDF-1.4\r%\342\343\317\323\r\n176 0 obj <</Lin"..., 4096) = 4096
92 read(3, "\362w\346\336\341'\305\361\26\276\7\367}\326\246\17\335,\10\226Y\2\334\324\226\201m'`\263=\317"..., 4096) = 4096
93 write(4, "\362w\346\336\341'\305\361\26\276\7\367}\326\246\17\335,\10\226Y\2\334\324\226\201m'`\263=\317"..., 4096) = 4096

辞取 2022-10-22 04:05:52

回复 7# Godbach

    严重谢谢!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文