当前位置: 技术问答>linux和unix
关于rename的问题,请指教
来源: 互联网 发布时间:2015-09-03
本文导语: 用函数rename跨分区移动文件时会有错误提示“Invalid cross-device link” 比如rename("/home/usr/a.txt", "/boot/a.txt")就会失败。 如何解决呢? 我的文件系统如下: 文件系统 1K-块 已用 可用 ...
用函数rename跨分区移动文件时会有错误提示“Invalid cross-device link”
比如rename("/home/usr/a.txt", "/boot/a.txt")就会失败。
如何解决呢?
我的文件系统如下:
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda2 3020172 1954136 912616 69% /
/dev/hda1 101089 9329 86541 10% /boot
none 256900 0 256900 0% /dev/shm
比如rename("/home/usr/a.txt", "/boot/a.txt")就会失败。
如何解决呢?
我的文件系统如下:
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda2 3020172 1954136 912616 69% /
/dev/hda1 101089 9329 86541 10% /boot
none 256900 0 256900 0% /dev/shm
|
在程序里调用命令mv解决会比较简单。很多判断mv都替你做掉了。
|
不在同一个文件系统里面进行,就会出这个错误。
你可以自己重新写各函数,来做到这一步,只是读源文件,然后写
到目标文件就行了:)
你可以自己重新写各函数,来做到这一步,只是读源文件,然后写
到目标文件就行了:)
|
rename is NOT meant to actually move files.
it "moves" files within identical device by changing the directory file content
so resort to alternative system call or simply system("mv ...") or
do all work by yourself
it "moves" files within identical device by changing the directory file content
so resort to alternative system call or simply system("mv ...") or
do all work by yourself