易截截图软件、单文件、免安装、纯绿色、仅160KB

flashpolicyd c 版本

#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <getopt.h>
#define MAX_READFILE 24
#define MAX_INPUTFILE 10240
char *file ;
void time_out(){
syslog(LOG_INFO,"read input timeout!");
exit(1);
}
void
usage(void)
/* print a help message about command line options and exit */
{
syslog(LOG_INFO,"system error:be short of params!");
fprintf (stdout,"system error:be short of params!");
exit(1);
}
char *f_opt_arg;
struct option longopts[] = {
{ "file",required_argument,NULL,'f'},
{ 0, 0, 0, 0}
};
void
parseopt(int argc, char *argv[])
/* set options */
{
int c;
/* constants and variables defined by command line */

while(1) {
c = getopt_long(argc, argv, ":f:", longopts, NULL);
if (c == EOF) break;
switch (c) {
case 'f':
file = optarg; break;

case ':':
usage();

case '?':
usage();

default:
usage();
}
}
}
int main(int argc ,char **argv)
{
/* interpret command line options */
parseopt(argc, argv);
FILE *fd ;
char xmlnote[MAX_INPUTFILE+1] ;
syslog(LOG_INFO,"start read xml:%s",file);
if((fd = fopen(file ,"r")) ==NULL){
syslog(LOG_INFO,"not found xml:%s",file);
exit(1);
}

int ch;
int counter=0;
while ( (ch = fgetc(fd)) != EOF ) {
xmlnote[counter] = ch;
counter++;
}
fclose(fd);
char *base ="<policy-file-request/>\000";
char input[MAX_READFILE+1] ;

signal(SIGALRM,time_out);
alarm(1);
char *r = fgets(input, MAX_READFILE, stdin);
alarm(0);

int cmp = memcmp(base,input,MAX_READFILE);
if( cmp<0 || cmp>0){
syslog(LOG_INFO,"read input bad format!");
exit(1);
}

if ( r!= NULL ) {
syslog(LOG_INFO,"end read input:%s",input);
fprintf (stdout,xmlnote);
}
return 0;
}


相关文档:

c陷阱与缺陷 心得体会 1

      今天比较懒惰,没做题,只是看了一点那本c陷阱与缺陷,说实话读了不多但明显能感觉出这是一本好书,感觉对我来说刚好,不是基础书,但也基本能看懂,而且能学到好多东西,但今天只看了三章,主要是下军旗了,囧,我也只能把我学到的总结下来,学了总比一点都没学要好,我也只能这样安慰自己了。 ......

C struct 中字节对齐问题


VC中下面几个结构体大小分别是多少呢
struct MyStruct
{
    double m4;
    char m1;
    int  m3;
};
struct MyStruct {
  ......

关于C/C++ 表达式求值顺序 未定义


表达式的副作用
运算符的优先级与结合性规定了表达式中相邻两个运算符的运算次序,但对于双目
运算的操作数,C++没有规定他们的计算次序。例如,对于表达式:
exp1 + exp2;
先计算 exp1 还是 exp2?不同的编译器有不同的做法。
在数学上,对于双目运算符,不论先计算哪一个操作数,要求最终计算结果一样。
在 C ......

【入门】用Linux中man命令查询C函数

      大家都知道在Unix/Linux中有个man命令,可以查询常用的命令,函数。可是对于我们这样只知道用"man 函数名"来查询的人来说,会遇到很多问题,比如:
      man read,我想看的是ANSI C中stdio的read函数原型和说明,没想到出来的确是BASH命令的说明,这是怎么回事 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号