⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spsfix.c

📁 speech signal process tools
💻 C
字号:
/* * spsfix - repair incorrect ndrec fields in SPS files * * Written by: Joseph T. Buck * * Usage: spsfix [-vni] file [file2 ...] * * Options: *	-v	Report on every file *	-n	Don't change files, just report what needs fixing *	-i	Ask user before changing anything */#ifndef lintstatic char *sccs_id = "@(#)spsfix.c	1.1 11/5/86 EPI";#endif#include <stdio.h>#include <sps/sps.h>#include <sys/types.h>#include <sys/stat.h>#define LINLEN 80char *Program = "spsfix";main (argc, argv)char  **argv;{    struct stat sbuf;    long    hpos, nr;    struct header  *h;    FILE * strm;    extern  optind;    extern char *optarg;    char   *mode = "r+", line[LINLEN];    int     vflag = 0, nflag = 0, iflag = 0, i, c, synerr = 0, sezso = 0;    while ((c = getopt (argc, argv, "vni")) != EOF) {	switch (c) {	    case 'v': 		vflag++;		break;	    case 'n': 		mode = "r";		nflag++;		break;	    case 'i': 		iflag++;		break;	    default:		synerr++;	}    }    if (synerr || optind == argc)	USAGE ("spsfix [-vni] file [file ...]");    for (i = optind; i < argc; i++) {	if ((strm = fopen (argv[i], mode)) == NULL) {	    Fprintf (stderr, "%s: can't open ", Program);	    perror (argv[i]);	    continue;	}	else if ((h = read_header (strm)) == NULL) {	    if (vflag)		Fprintf (stderr, "%s: %s is not an SPS file\n", Program, argv[i]);	    (void) fclose (strm);	    continue;	}	hpos = ftell (strm);	if (stat (argv[i], &sbuf) != 0) {	    perror (argv[i]);	    exit (1);	}	nr = (sbuf.st_size - hpos) / size_rec (h);	if (nr != h -> common.ndrec) {	    Fprintf (stderr, "%s: says %ld records, really %ld records\n",		    argv[i], h -> common.ndrec, nr);	    if (iflag) {		Fprintf (stderr, "repair [y/n]? ");		fflush (stderr);		(void) fgets (line, LINLEN, stdin);		sezso = (line[0] == 'y' || line[0] == 'Y');	    }	    if (nflag == 0 && sezso) {		rewind (strm);		h -> common.ndrec = nr;		write_header (h, strm);	    }	}	else if (vflag)	    Fprintf (stderr, "%s has %ld records\n", argv[i], h -> common.ndrec);	(void) fclose (strm);    }    return 0;}

⌨️ 快捷键说明

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