[问题]路过的各位大哥进来看看小弟求救啊

C、C++和Java语言
回复
ghhg11
帖子: 4
注册时间: 2006-09-27 23:06
送出感谢: 0
接收感谢: 0

[问题]路过的各位大哥进来看看小弟求救啊

#1

帖子 ghhg11 » 2006-09-29 23:29

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <unistd.h>
void usage(void){
fprintf(stderr,"usage:mknod <path>{b|c|u|p]","<major><minor>\n");
exit(1);
}
int main(int argc,const char **argv){
int major=0,minor=0;
const char *path;
int mode=0666;
char *end;
int args;
if(argc<3)usage();
path=argv[1];
if(!strcmp(argv[2],"b")){
mode|=S_IFBLK;
args=5;
}else if(!strcmp(argv[2],"c")||!strcmp(argv[2],"u")){
mode|=S_IFCHR;
args=5;
}else if(!strcmp(argv[2],"p")){
mode|=S_IFIFO;
args=3;
}else{
fprintf(stderr,"unknown node type %s\n",argv[2]);
return 1;
}
if(argc!=args)usage();
if(args==5){
major=strtol(argv[3],&end,0);
if(*end){
fprintf(stderr,"bad major number %s\n",argv[3]);
return 1;
}
minor=strtol(argv[4],&end,0);
if(*end){
fprintf(stderr,"bad minor number %s\n",argv[4]);
return 1;
}
}
if(mknod(path,mode,makedev(major,minor))){
fprintf(stderr,"mknod failed:%s\n",strerror(errno));
return 1;
}
return 0;
}
该程序是建立管道的,但俺有几句看不懂,不知其作用是什么?求各位老大解答:
mode|=S_IFCHR;这几句的作用是什么啊?俺想了很久了唉,郁闷ing :o
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2006-09-29 23:35


mode=mode|S——IFCHR
● 鸣学
回复

回到 “C/C++/Java”