Redian新闻
>
在C/C++里的文件复制操作
avatar
在C/C++里的文件复制操作# Programming - 葵花宝典
j*b
1
望儿
作者:平静幸福[劳柯]


冬天的夜总是来得早,四点刚过,天就灰蒙蒙的暗了下来。

雪下得正紧,地上已经积了半尺多厚,一脚踩下去,吱嘎一声就会没过脚踝。和我同车
到达的人都忙着找旅馆,而我今天晚上一定要赶回去,这是母亲的死命令,要不,母亲
又会一个晚上都担心地要命。

“明天晚上之前你一定要到家。”昨天母亲在电话上焦急地说:“明天是腊月二十三,
小年,送老灶爷走的日子。”

过去人穷,总是觉得饭不够吃,是被小鬼夜里偷走了。每家每户都请一老灶爷帖在锅台
前,说是看着锅里的饭。在我看来,老灶爷不过是一张纸头,我的母亲却相信的厉害。

老灶爷要每年都换,我们那儿有种说法:“初一五更来,二十三晚上走”,就是说初一
那天一大早把新的老灶爷请来,二十三晚上把旧的老灶爷送走。据说就的老灶爷要到玉
皇大帝那儿反映一下这个家庭的情况,这也使送老灶爷走这天变的特别重要,一家人都
要在场。

我的母亲其实不迷信,不知道为什么对老灶爷这件事确实特别注意,也许是过去饿怕了
。所以我今天一定要赶到家,本来中午到,没想到遇到这样的鬼天气。

大地裹着厚厚的银装,已经分不清楚哪儿是路,哪儿是田,
avatar
g*s
2
有没有直接复制文件的function,类似删除文件的unlink(),建目录的mkdir?
avatar
g*s
3
自己写一个当然不难,但是觉得没必要。再说性能上还要考虑buffer size啥的,挺麻
烦的。

【在 g*********s 的大作中提到】
: 有没有直接复制文件的function,类似删除文件的unlink(),建目录的mkdir?
avatar
P*f
4
sendfile

【在 g*********s 的大作中提到】
: 自己写一个当然不难,但是觉得没必要。再说性能上还要考虑buffer size啥的,挺麻
: 烦的。

avatar
m*e
5
你用过么?

【在 P*****f 的大作中提到】
: sendfile
avatar
n*t
6
我都没听说这个东西。

【在 m*****e 的大作中提到】
: 你用过么?
avatar
P*f
7
没用过,碰巧看过linux下的实现.
虽然不是posix标准,不过各个平台好像都有.

【在 n******t 的大作中提到】
: 我都没听说这个东西。
avatar
n*t
8
o,刚才man了一下。。。
windows下有么?

【在 P*****f 的大作中提到】
: 没用过,碰巧看过linux下的实现.
: 虽然不是posix标准,不过各个平台好像都有.

avatar
P*f
9
不知道,估计没有
直接拷文件的win32 api倒是有。
但是做没做优化就不知道乐。

【在 n******t 的大作中提到】
: o,刚才man了一下。。。
: windows下有么?

avatar
P*f
10
嘿,还真有
TransmitFile
不过抽象做得没有sendfile好,只能做网络传输用

【在 P*****f 的大作中提到】
: 不知道,估计没有
: 直接拷文件的win32 api倒是有。
: 但是做没做优化就不知道乐。

avatar
m*e
11
sendfile can only send file to a socket
it's not meant for copying files

【在 P*****f 的大作中提到】
: 嘿,还真有
: TransmitFile
: 不过抽象做得没有sendfile好,只能做网络传输用

avatar
P*f
12
use splice then.
But I did remember they used to support file-to-file copy.
Maybe they just move it to a more semantically explicit sys call.

【在 m*****e 的大作中提到】
: sendfile can only send file to a socket
: it's not meant for copying files

avatar
k*f
13

What about use function system() to call the shell to do such job?

【在 g*********s 的大作中提到】
: 有没有直接复制文件的function,类似删除文件的unlink(),建目录的mkdir?
avatar
n*t
14
That seems an implementation limitation under Linux,
sendfile under solaris could be used to copy files.

【在 m*****e 的大作中提到】
: sendfile can only send file to a socket
: it's not meant for copying files

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。