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;
}
Ïà¹ØÎĵµ£º
This is Edition 2.2.10 of `The `indent' Manual', for Indent Version
2.2.10, last updated 23 July 2008.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996 Free Software
Foundation, Inc. Copyright (C) 1995, 1996 Joseph Arceneaux. Copyright
(C) 1999 Carlo Wood. Copyright (C) 2001 David Ingamell ......
½ñÌì±È½ÏÀÁ¶è£¬Ã»×öÌ⣬ֻÊÇ¿´ÁËÒ»µãÄDZ¾cÏÝÚåÓëȱÏÝ£¬ËµÊµ»°¶ÁÁ˲»¶àµ«Ã÷ÏÔÄܸоõ³öÕâÊÇÒ»±¾ºÃÊ飬¸Ð¾õ¶ÔÎÒÀ´Ëµ¸ÕºÃ£¬²»ÊÇ»ù´¡Ê飬µ«Ò²»ù±¾ÄÜ¿´¶®£¬¶øÇÒÄÜѧµ½ºÃ¶à¶«Î÷£¬µ«½ñÌìÖ»¿´ÁËÈýÕ£¬Ö÷ÒªÊÇϾüÆìÁË£¬囧£¬ÎÒÒ²Ö»ÄܰÑÎÒѧµ½µÄ×ܽáÏÂÀ´£¬Ñ§ÁË×ܱÈÒ»µã¶¼Ã»Ñ§ÒªºÃ£¬ÎÒÒ²Ö»ÄÜÕâÑù°²Î¿×Ô¼ºÁË¡£ ......
1. structµÄ¾Þ´ó×÷ÓÃ
¡¡¡¡Ãæ¶ÔÒ»¸öÈ˵ĴóÐÍC/C++³ÌÐòʱ£¬Ö»¿´Æä¶ÔstructµÄʹÓÃÇé¿öÎÒÃǾͿÉÒÔ¶ÔÆä±àдÕßµÄ
±à³Ì¾Ñé½øÐÐÆÀ¹À¡£ÒòΪһ¸ö´óÐ͵ÄC/C++³ÌÐò£¬ÊƱØÒªÉ漰һЩ(ÉõÖÁ´óÁ¿)½øÐÐÊý¾Ý×éºÏ
µÄ½á¹¹Ì壬ÕâЩ½á¹¹Ìå¿ÉÒÔ½«Ô±¾ÒâÒåÊôÓÚÒ»¸öÕûÌåµÄÊý¾Ý×éºÏÔÚÒ»Æð¡£´ÓijÖ̶ֳÈÉÏÀ´
˵£¬»á²»»áÓÃstruct£¬ÔõÑùÓÃstructÊÇÇø± ......
Êý×Öת×Ö·û´®£º
ÓÃC++µÄstreanstream:
#include <sstream>
#Include <string>
string num2str(double i)
...{
stringstream ss;
ss<<i;
return ss.str();
......
ÄÜ£¬¾Ö²¿»áÆÁ±ÎÈ«¾Ö¡£ÒªÓÃÈ«¾Ö±äÁ¿£¬ÐèҪʹÓÃ"::"
¾Ö²¿±äÁ¿¿ÉÒÔÓëÈ«¾Ö±äÁ¿Í¬Ãû£¬ÔÚº¯ÊýÄÚÒýÓÃÕâ¸ö±äÁ¿Ê±£¬»áÓõ½Í¬ÃûµÄ¾Ö²¿±äÁ¿£¬¶ø²»»áÓõ½È«¾Ö±äÁ¿¡£¶ÔÓÚÓÐЩ±àÒëÆ÷¶øÑÔ£¬ÔÚͬһ¸öº¯ÊýÄÚ¿ÉÒÔ¶¨Òå¶à¸öͬÃûµÄ¾Ö²¿±äÁ¿£¬±ÈÈçÔÚÁ½¸öÑ»·ÌåÄÚ¶¼¶¨ÒåÒ»¸öͬÃûµÄ¾Ö²¿±äÁ¿£¬¶øÄǸö¾Ö²¿±äÁ¿µÄ×÷ÓÃÓò¾ÍÔÚÄǸöÑ»·ÌåÄÚ¡£
2¡¢ÈçºÎÒýÓ ......