获取文件描述信息
#include <iostream>
#include <sys/stat.h>
using namespace std;
int main(int argc, char* argv[])
{
char* name = NULL;
name = argv[1]// 命令行传递文件名
struct stat s;
stat(name, &s);
cout<<s.st_mode<<endl;
cout<<s.st_uid<<endl;
cout<<s.st_size<<endl;
if(S_ISDIR(s.st_mode))
cout<<"directory"<<endl;
else
cout<<"file"<<endl;
}
打开、删除文件
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd = open("a.txt", O_RDONLY);
if(fd < 0 )
cout<<"open fail"<<endl;
else
cout<<"open ok"<<endl;
close(fd);
unlink("a.txt");
}
读写文件
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd;
char buf[4] = {};
fd = open("/mylinux/unix/a.txt", O_RDWR);
if( fd < 0 )
{
cout<<"open fail"<<endl;
return -1;
}
int len;
len = read(fd, buf, 4);
if(len < 0)
{
cout<<"read error"<<endl;
close(fd);
return -1;
}
cout<<buf<<endl;
char* str = "****";
len = write(fd, str, 4);
if(len < 0)
{
cout<<"write error"<<endl;
// close(fd);
}
close(fd);
}
读写指定位置字符
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd;
fd = open("a.txt", O_RDWR);
if(fd < 0)
{
cout<<"open fail"<<endl;
return -1;
}
char ch;
for(int i=0; i<3; ++i)
{
read(fd, &ch, 1);
cout<<ch;
lseek(fd, 1, SEEK_CUR);
}
cout<<endl;
lseek(fd, 0, SEEK_SET);
char buf[9]={};
read(fd, buf, 8);
cout<<buf<<endl;
lseek(fd, 0, SEEK_END);
write(fd, "bye\0", 4);
close(fd);
}
#include <iostream>
#include <sys/stat.h>
using namespace std;
int main(int argc, char* argv[])
{
char* name = NULL;
name = argv[1]// 命令行传递文件名
struct stat s;
stat(name, &s);
cout<<s.st_mode<<endl;
cout<<s.st_uid<<endl;
cout<<s.st_size<<endl;
if(S_ISDIR(s.st_mode))
cout<<"directory"<<endl;
else
cout<<"file"<<endl;
}
打开、删除文件
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd = open("a.txt", O_RDONLY);
if(fd < 0 )
cout<<"open fail"<<endl;
else
cout<<"open ok"<<endl;
close(fd);
unlink("a.txt");
}
读写文件
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd;
char buf[4] = {};
fd = open("/mylinux/unix/a.txt", O_RDWR);
if( fd < 0 )
{
cout<<"open fail"<<endl;
return -1;
}
int len;
len = read(fd, buf, 4);
if(len < 0)
{
cout<<"read error"<<endl;
close(fd);
return -1;
}
cout<<buf<<endl;
char* str = "****";
len = write(fd, str, 4);
if(len < 0)
{
cout<<"write error"<<endl;
// close(fd);
}
close(fd);
}
读写指定位置字符
#include <iostream>
#include <fcntl.h>
using namespace std;
int main()
{
int fd;
fd = open("a.txt", O_RDWR);
if(fd < 0)
{
cout<<"open fail"<<endl;
return -1;
}
char ch;
for(int i=0; i<3; ++i)
{
read(fd, &ch, 1);
cout<<ch;
lseek(fd, 1, SEEK_CUR);
}
cout<<endl;
lseek(fd, 0, SEEK_SET);
char buf[9]={};
read(fd, buf, 8);
cout<<buf<<endl;
lseek(fd, 0, SEEK_END);
write(fd, "bye\0", 4);
close(fd);
}