很久以前的学习过的一本书,这部书比较基础。
以下只是个人的做法,仅供参考。
1、设计一个程序,要求打开文件“pass“,如果没有这个文件,权限设置为只有所有者有只读权限。
#include
#include
#include
#include
#include
#include
void main()
{
int fd;
if((fd=open("pass",O_CREAT))<0)
{
printf("文件不存在\n");
}
printf("创建文件pass,文件描述符为:%d\n",fd);
chmod("pass",S_IRUSR|S_IWUSR);
}
2、设计一个程序,要求新建一个文件”hello“,利用write函数将”Linux下C软件设计”字符串写入该文件。
#include
#include
#include
#include
#include
#include
#include
void main()
{
int fd,twrite;
if((fd=open("hello",O_CREAT|O_TRUNC|O_WRONLY,0600))<0)
{
printf("打开文件出错");
exit(1);
}
char str[]="Linux下C软件设计";
if((twrite=write(fd,str,sizeof(str)))<0)
{
printf("写入文件出错");
exit(1);
}
close(fd);
exit(0);
}
3、设计一个程序,要求用read函数读取系统文件"/etc/passwd",并在终端中显示输出。
#include
#include
#include
#include
#include
#include
void main()
{
int fd,rtype,wtype;
char str[30];
if((fd=open("/etc/passwd",O_RDONLY))<0)
{
printf("读取文件失败!");
exit(1);
}
while((rtype=read(fd,str,30))>0)
{
if((wtype=write(STDOUT_FILENO,str,rtype))<0)
printf("写入文件出错");
}
close(fd);
}
4、设计一个程序,要求打开文件“pass”,如果没有这个文件,新建此文件,再读取系统文件“/etc/passwd”,把文件中的内容写入“pass”文件。
#include
#include
#include
#include
#include
#include
void main()
{
int fdsrc,fddes,nbytes,wtype;
char str[30];
if((fddes=open("pass",O_CREAT|O_TRUNC|O_WRONLY,0600))<0)
{
printf("打开(创建)文件pass失败!");
exit(1);
}
if((fdsrc=open("/etc/passwd",O_RDONLY))<0)
{
printf("打开文件失败!");
exit(1);
}
while((nbytes=read(fdsrc,str,30))>0)
{
if((wtype=write(fddes,str,30))<0)
printf("写入文件失败");
}
close(fdsrc);
close(fddes);
}
6、设计一个程序,要求新建一个目录,预设权限为—x–x--x。
#include
#include
#include
#include
#include
void main()
{
system("mkdir exercise");
chmod("exercise",S_IXUSR|S_IXGRP|S_IXOTH);
}
7、设计一个程序,要求为“/bin/ls”文件建立一个软连接“ls1”和一个硬链接为“ls2”,并查看两个链接文件和“/bin/ls”文件。
#include
#include
void main()
{
symlink("/bin/ls","ls1");
link("/bin/ls","ls2");
system("ls -l /bin/ls");
system("ls -l ls1");
system("ls -l ls2");
}