请教一下高手:在Linux(Red Hat)下怎样用程序修改文件的属性呢?比如时间、权限等。C语言只能修改时间!
来源: 互联网 发布时间:2015-12-26
本文导语: 如题。我现在只知道能有C语言的stat得到若干属性、用utime函数修改时间属性。请教一下:有没有其他的函数是有关文件的属性设置的?请高手指点一下!谢谢! | 首先奉劝一句:人如果太懒...
如题。我现在只知道能有C语言的stat得到若干属性、用utime函数修改时间属性。请教一下:有没有其他的函数是有关文件的属性设置的?请高手指点一下!谢谢!
|
首先奉劝一句:人如果太懒,又傲慢的话基本上就无可救药了。
估计高手都会BS你这种语气,不愿意回答了。就让菜鸟用google来回答了
用2个函数就叫chmod和utime,这么懒的人,既然不愿意自己查一下。
/* 将/etc/passwd 文件权限设成S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH */
#include
#include
main()
{
chmod(“/etc/passwd”,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
}
/* 将/etc/passwd 的所有者和组都设为root */
#include
#include
main()
{
chown(“/etc/passwd”,0,0);
}
ftruncate(改变文件大小)
相关函数 open,truncate
表头文件 #include
定义函数 int ftruncate(int fd,off_t length);
函数说明 ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length大,则超过的部分会被删去。
返回值 执行成功则返回0,失败返回-1,错误原因存于errno。
错误代码 EBADF 参数fd文件描述词为无效的或该文件已关闭。
EINVAL 参数fd 为一socket 并非文件,或是该文件并非以写入模式打开。
utime(修改文件的存取时间和更改时间)
相关函数 utimes,stat
表头文件 #include
#include
定义函数 int utime(const char * filename,struct utimbuf * buf);
函数说明 utime()用来修改参数filename文件所属的inode存取时间。
结构utimbuf定义如下
struct utimbuf{
time_t actime;
time_t modtime;
};
返回值 如果参数buf为空指针(NULL),则该文件的存取时间和更改时间全部会设为目前时间。
执行成功则返回0,失败返回-1,错误代码存于errno。
错误代码 EACCESS 存取文件时被拒绝,权限不足
ENOENT 指定的文件不存在。
估计高手都会BS你这种语气,不愿意回答了。就让菜鸟用google来回答了
用2个函数就叫chmod和utime,这么懒的人,既然不愿意自己查一下。
/* 将/etc/passwd 文件权限设成S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH */
#include
#include
main()
{
chmod(“/etc/passwd”,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
}
/* 将/etc/passwd 的所有者和组都设为root */
#include
#include
main()
{
chown(“/etc/passwd”,0,0);
}
ftruncate(改变文件大小)
相关函数 open,truncate
表头文件 #include
定义函数 int ftruncate(int fd,off_t length);
函数说明 ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length大,则超过的部分会被删去。
返回值 执行成功则返回0,失败返回-1,错误原因存于errno。
错误代码 EBADF 参数fd文件描述词为无效的或该文件已关闭。
EINVAL 参数fd 为一socket 并非文件,或是该文件并非以写入模式打开。
utime(修改文件的存取时间和更改时间)
相关函数 utimes,stat
表头文件 #include
#include
定义函数 int utime(const char * filename,struct utimbuf * buf);
函数说明 utime()用来修改参数filename文件所属的inode存取时间。
结构utimbuf定义如下
struct utimbuf{
time_t actime;
time_t modtime;
};
返回值 如果参数buf为空指针(NULL),则该文件的存取时间和更改时间全部会设为目前时间。
执行成功则返回0,失败返回-1,错误代码存于errno。
错误代码 EACCESS 存取文件时被拒绝,权限不足
ENOENT 指定的文件不存在。
|
chmod(fchmod) , utime, access, truncate, symlink, link, unlink, remove, rename, umask
APUE第四章列出的这些函数,应该够用了。另外,你的需求是什么?
APUE第四章列出的这些函数,应该够用了。另外,你的需求是什么?
|
我只知道APUE里讲得很详细!