示例#1
0
int main(int argc, char **argv)
{
    FILE *fin;		/* Input file				*/
    FILE *fzeros;		/* output file				*/
    FILE *fmodel;
//segy  thdr;		/* holds the full trace header		*/
    char  txthdr[3202];	/* The character file header		*/
//register complex *ct;   /* complex transformed trace            */
    float dt;               /* sample spacing                       */
    int ns;                 /* number of points on input trace      */
    register int i;
    int   ierr=0;
    int endian = 1;
    int format;
    unsigned char chdr[3202];
    int status=0;
    bhed  bh;
    int   fmt,  itr;
    int idt;
    segy  thdr;
    float *tr;	/* Array to hold the trace samples */
    int *ptr2hdr;
    int count=0;
    char trhdr[242];
    int delta =0;
    int iline=0, xline=0,ilineStart=0,xlineStart=0,xlineEnd=0,horizon=0,ilineEnd=0;
    int numXlines=0;
    char str[101];
    int zero=0;
    int  window=0;
    float  velAve=0;
    int *pointAve;
    int fill=0;
    float sumVels=0,read=0;
    int numVels=0;
    long int fileBeg=0, fileEnd=0,size;
    int choice;
    char buff[80];
    fpos_t position;

    struct stat st;


    endian = checkEndian();

    if (argc == 9) {
        fzeros = fopen(argv[1],"r");
        fin = fopen(argv[2], "r+b");

        if (fzeros == NULL) {
            printf("Unable to open the zeros file.  Please check the name.\n");
            return -1;
        }
        if (fin == NULL) {
            printf("Unable to open the input velocity file.  Please check the name.\n");
            return -1;
        }
        if(sscanf(argv[3], "%d", &ilineStart) != 1) {
            printf("\nStarting Inline entered not valid. Exiting...");
            return -1;
        }
        if(sscanf(argv[4], "%d", &xlineStart) != 1) {
            printf("\nStarting Xline entered not valid. Exiting...");
            return -1;
        }
        if(sscanf(argv[5], "%d", &ilineEnd) != 1) {
            printf("\Ending iline entered not valid. Exiting...");
            return -1;
        }
示例#2
0
int main(int argc, char *argv[])
{
	/* check for correct invocation */
	if( argc != 2 )
	{
		fprintf( stderr, "Invalid arguments. Usage: dnsresolve <host>\n" );
		errno = EINVAL;
		exit(EXIT_FAILURE);
	}
	
	/* set up hints struct for call to getaddrinfo() and call it */
	struct addrinfo hints;  // create struct
	memset(&hints, 0, sizeof(hints)); // fill struct with zeros
	hints.ai_socktype = SOCK_STREAM;
	hints.ai_family = AF_UNSPEC;	
	struct addrinfo *results;
	int error;
	
	error = getaddrinfo( argv[1], NULL, &hints, &results );
	if(error != 0)
	{
		fprintf(stderr, "Error in getaddrinfo(): %s\n", gai_strerror(error)); 
		exit(EXIT_FAILURE);
	}
	
	/* return the endian-ness of the system */
	if( checkEndian() == BIG ) printf("The system and network are big-endian (MSB first).\n");
	else printf("The system is little-endian (LSB first), the network is big-endian (MSB first).\n");
	
	struct addrinfo *loop;
	struct sockaddr_in *sa_in;
	char ip_buf[512], rev_dns_buf[512];
	/* loop over all nodes in the linked list returned from getaddrinfo() */
	for( loop = results; loop != NULL; loop = loop->ai_next )
	{
        sa_in = (struct sockaddr_in *) loop->ai_addr;
		
		/* ipv4 */
		if( loop->ai_family == AF_INET )
		{		
			/* get the IP address from the encoded data */
			if ( inet_ntop( AF_INET, &(sa_in->sin_addr), ip_buf, INET_ADDRSTRLEN ) == NULL )
			{
				fprintf( stderr, "Error translating name (inet_ntop): %s\n", strerror(error));
				exit( EXIT_FAILURE );
			}			
			/* reverse DNS on the IP */
			if( getnameinfo( (struct sockaddr *) sa_in, INET_ADDRSTRLEN, rev_dns_buf, sizeof(rev_dns_buf), NULL, 0, 0 ) )
			{
				fprintf( stderr, "Error in getnameinfo(): %s\n", gai_strerror(errno));
				exit( EXIT_FAILURE );
			}
			fprintf( stdout, "ipv4: %s -- reverse dns lookup: %s\n", ip_buf, rev_dns_buf );
		}
		/* ipv6 */
		else 
		{
			/* get the IP address from the encoded data */
			if ( inet_ntop( AF_INET6, &(sa_in->sin_addr), ip_buf, INET6_ADDRSTRLEN ) == NULL )
			{
				fprintf( stderr, "Error translating name (inet_ntop): %s\n", strerror(error));
				exit( EXIT_FAILURE );
			}
			/* reverse DNS on the IP */
			if( getnameinfo( (struct sockaddr *) sa_in, INET6_ADDRSTRLEN, rev_dns_buf, sizeof(rev_dns_buf), NULL, 0, 0 ) )
			{
				fprintf( stderr, "Error in getnameinfo(): %s\n", gai_strerror(errno));
				exit( EXIT_FAILURE );
			}
			fprintf( stdout, "ipv6: %s -- reverse dns lookup: %s\n", ip_buf, rev_dns_buf );	
		}
		if( loop->ai_next == NULL ) break;
    }
	freeaddrinfo(results);
	exit( EXIT_SUCCESS );
}
示例#3
0
int main(int argc, char *argv[]){
        FILE *readP;
        FILE *writeP;
        char readFilename[FILENAME_CHARMAX] = "input.bdf";
        char writeFilename[FILENAME_CHARMAX] = "output.bmp";
        int i, j, tmp, n, dst, c;
        char *sP;
        unsigned char *bitmapP = NULL; /* address of bitmapAREA */
        int spacing = 2; /* breadth of spacing (default 2) */
        int flag;
        int colchar = 32; /* number of columns(horizontal) (default 32) */
        char paramP[PARAM_MAX][LINE_CHARMAX]; /* parameter strings */
        int iflag = OFF;
        struct stat fileinfo;

        /*
         * deal with arguments
         */
        if(argc < 2){
                /* printf("error: not enough arguments\n"); */
                printhelp();
        }

        /* formatting arguments */
        sP = calloc(LINE_CHARMAX, sizeof(char));
        if(sP == NULL){
                printf("error\n");
                exit(1);
        }
        for(i=1,dst=0,n=0; i<argc; i++){
                if(argv[i][0] == '-'){
                        /* command-line options */
                        for(j=1; j<(int)strlen(argv[i]); j++){
                                if(argv[i][j]=='w' ||
                                   argv[i][j]=='i' ||
                                   argv[i][j]=='h' ||
                                   argv[i][j]=='v')
                                {
                                        *(sP+dst) = '-'; dst++;
                                        *(sP+dst) = argv[i][j]; dst++;
                                        *(sP+dst) = '\0';
                                        strcpy(paramP[n], sP); dst=0; n++;
                                        memset(sP,0,LINE_CHARMAX);
                                        if(n >= PARAM_MAX){
                                                printf("error: too many arguments\n");
                                                exit(EXIT_FAILURE);
                                        }

                                }else if( (argv[i][j]=='s') ||
                                          (argv[i][j]=='c'))
                                {
                                        *(sP+dst) = '-'; dst++;
                                        *(sP+dst) = argv[i][j]; dst++;
                                }else if( isdigit(argv[i][j]) == 0 ){
                                        /* not [0-9] */
                                        printf("error: invalid option -- '%c'\n", argv[i][j]);
                                        exit(EXIT_FAILURE);
                                }else if( argv[i][j+1] == '\0' ){
                                        *(sP+dst) = argv[i][j]; dst++;
                                        *(sP+dst) = '\0';
                                        strcpy(paramP[n], sP); dst=0; n++;
                                        if(n >= PARAM_MAX){
                                                printf("error: too many arguments\n");
                                                exit(EXIT_FAILURE);
                                        }
                                }else{
                                        *(sP+dst) = argv[i][j]; dst++;
                                }
                        }
                }else{
                        /* not command-line options */
                        for(j=0; j<(int)strlen(argv[i]); j++){
                                *(sP+dst) = argv[i][j]; dst++;
                        }
                        *(sP+dst) = '\0';
                        strcpy(paramP[n], sP); dst=0; n++;
                        memset(sP,0,LINE_CHARMAX);
                        if(n >= PARAM_MAX){
                                printf("error: too many arguments\n");
                                exit(EXIT_FAILURE);
                        }
                }
        }
        free(sP);

        /* interpretting arguments */
        for(i=0, flag=0; i<n; i++){
                switch( paramP[i][0] ){
                case '-':
                        if(paramP[i][1] == 's')
                                spacing = atoi(&paramP[i][2]);
                        else if(paramP[i][1] == 'c')
                                colchar = atoi(&paramP[i][2]);
                        else if(paramP[i][1] == 'w')
                                dwflag = ON;
                        else if(paramP[i][1] == 'i')
                                iflag = ON;
                        else if( (paramP[i][1]=='v') || (paramP[i][1]=='h'))
                                printhelp();
                        break;
                default:
                        if(flag == 0){
                                strcpy(readFilename, paramP[i]);
                                flag ++;
                        }else{
                                strcpy(writeFilename, paramP[i]);
                                if(strcmp(readFilename, writeFilename) == 0){
                                        printf("error: input-filename and output-filename are same\n");
                                        exit(EXIT_FAILURE);
                                }
                                flag ++;
                        }
                        break;
                }
        }

        if(flag < 2){
                printf("error: not enough arguments\n");
                printf("Usage: bdf2bmp [-option] input-bdf-file output-bmp-file\n");
                exit(EXIT_FAILURE);
        }

        /* colchar is limited from 1 to 1024 */
        if(colchar  < 1)
                colchar = 1;
        else if(colchar > 1024)
                colchar = 1024;

        /* spacing is limited from 0 to 32 */
        if(spacing < 0)
                spacing = 0;
        else if(spacing > 32)
                spacing = 32;

        /* checkEndian */
        checkEndian();

        /*
         * prepare to read&write files
         */
        readP = fopen(readFilename, "r");
        if(readP == NULL){
                printf("bdf2bmp: '%s' does not exist\n", readFilename);
                exit(EXIT_FAILURE);
        }
        /* Does writeFilename already exist? */
        if((iflag==ON) && (stat(writeFilename, &fileinfo)==0)){
                fprintf(stderr, "bdf2bmp: overwrite '%s'? ", writeFilename);
                c = fgetc(stdin);
                if((c=='y') || (c=='Y'))
                        ; /* go next */
                else
                        /* printf("not overwrite\n"); */
                        exit(EXIT_FAILURE);
        }
        writeP=fopen(writeFilename, "wb");
        if(writeP == NULL){
                printf("error: cannot write '%s'\n", writeFilename);
                exit(EXIT_FAILURE);
        }


        /* read bdf-font-file */
        bitmapP = readBdfFile(bitmapP, readP);
        fclose(readP);

        /* write bmp-image-file */
        writeBmpFile(bitmapP, spacing, colchar, writeP);
        tmp = fclose(writeP);
        if(tmp == EOF){
                printf("error: cannot write '%s'\n", writeFilename);
                free(bitmapP);
                exit(EXIT_FAILURE);
        }

        free(bitmapP);
        return EXIT_SUCCESS;
}