fist_ioctl.c

来自「Solaris操作系统下的过滤驱动程序, C源码程序.」· C语言 代码 · 共 70 行

C
70
字号
/* * Copyright (c) 1997-2003 Erez Zadok * Copyright (c) 2001-2003 Stony Brook University * Copyright (c) 1997-2000 Columbia University * * For specific licensing information, see the COPYING file distributed with * this package, or get one from ftp://ftp.filesystems.org/pub/fist/COPYING. * * This Copyright notice must be kept intact and distributed with all * fistgen sources INCLUDING sources generated by fistgen. *//* *  $Id: fist_ioctl.c,v 1.5 2002/12/27 20:19:07 ezk Exp $ */#ifdef HAVE_CONFIG_H# include <config.h>#endif /* HAVE_CONFIG_H */#ifdef FISTGEN# include "fist_wrapfs.h"#endif /* FISTGEN */#include <fist.h>#include <wrapfs.h>#include <sys/ioctl.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>#include <stdio.h>intmain(int argc, char *argv[]){  int fd;#ifdef FIST_DEBUG  int ret, val = 0;#endif /* FIST_DEBUG */  if (argc < 2 || argc > 3) {    fprintf(stderr, "Usage: %s file [val]\n", argv[0]);    exit(1);  }  fd = open(argv[1], O_RDONLY);  if (fd < 0) {    perror(argv[1]);    exit(1);  }#ifdef FIST_DEBUG  /* if specified 3rd arg, want to set debug level */  if (argc == 3) {    val = atoi(argv[2]);    ret = ioctl(fd, FIST_IOCTL_SET_DEBUG_VALUE, &val);    if (ret < 0) {      perror("ioctl set");      exit(1);    }  } else {    ret = ioctl(fd, FIST_IOCTL_GET_DEBUG_VALUE, &val);    if (ret < 0) {      perror("ioctl get");      exit(1);    }    printf("ioctl returned value %d\n", val);  }#endif /* FIST_DEBUG */  close(fd);  exit(0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?