如何使用系统调用函数 open、close、read、write 等实现 cp 功能?

2020-06-30 08:56:07 +08:00
 MoTao

在 Ubuntu 系统中,如何使用系统调用函数 open 、close 、read 、write 等实现 cp 功能? 初学,希望各位解答下。

2431 次点击
所在节点    程序员
19 条回复
dandycheung
2020-06-30 09:03:09 +08:00
直接去看 cp 命令的源代码吧
zchlwj
2020-06-30 09:03:54 +08:00
好像大作业来的
momocraft
2020-06-30 09:08:15 +08:00
空手套作业?
xdeng
2020-06-30 09:09:51 +08:00
这不是文件操作最基本的吗。
putaozhenhaochi
2020-06-30 09:16:29 +08:00
C ?
BingoXuan
2020-06-30 09:26:46 +08:00
本质就是从用户态进入内核态

参考: http://gityuan.com/2016/05/21/syscall/
lululau
2020-06-30 09:28:35 +08:00
看 APUE
WordTian
2020-06-30 09:29:10 +08:00
用 open 打开两个文件,循环读写呗
PTLin
2020-06-30 09:37:22 +08:00
好久没在 v2 看到这么简单的问题了。。。
crclz
2020-06-30 09:46:53 +08:00
拷贝文件夹怎么办啊?是不是得用 mkdir 函数?
RikkaW
2020-06-30 09:50:01 +08:00
问题里有个“等”,发出 sendfile 也是系统调用的声音,只要一行就好了(逃跑
MoTao
2020-06-30 10:00:44 +08:00
我好像写出来了(→_→)
ztyMCR
2020-06-30 10:01:19 +08:00
突然感觉自己还是大一新生
fasionchan
2020-06-30 10:03:45 +08:00
用 man 逐个看下系统调用文档就知道怎么用了:man open
vk42
2020-06-30 10:07:44 +08:00
这是来找作业答案来了?
shawnsh
2020-06-30 10:07:46 +08:00
linux 系统编程书上有写
guonaihong
2020-06-30 10:12:24 +08:00
不就是用 creat 创建目标文件,open 源文件,然后用 read 读源文件到 buffer 里面,然后用 write 把 buffer 数据写到目标文件里面,最后 close, close 。
估计 8 行代码就搞定(只实现核心功能)。
MoTao
2020-06-30 10:17:42 +08:00
@guonaihong 已搞定
guonaihong
2020-06-30 10:43:50 +08:00
@MoTao ok 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX