示例#1
0
int main (int argc, char** argv) {

   void filecopy (FILE* ifs, FILE* ofs);

   char* prog = *argv;

   FILE* fp = NULL;
                                 
   if (argc == 1)
      filecopy (stdin, stdout);
   else
      while (--argc > 0)
         if ((fp = fopen (*(++argv), "r")) == NULL) {
            fprintf (stderr, "%s: can't open %s\n", prog, *argv);
            exit (1);
         } else {
              filecopy (fp, stdout);
              fclose (fp);
           }

   if (ferror (stdout)) {
      fprintf (stderr, "%s: error writing stdout\n", prog);
      exit (2);

   }

   exit (0);
}
示例#2
0
文件: 8_1.c 项目: bjmayor/code2study
int main(int argc, char *argv[])
{
    int fd;
    void filecopy(int , int );
    char *prog = argv[0];

    if (argc == 1)
    {
        filecopy(0, 1);
    }
    else
    {
        while(--argc)
        {
            if ((fd=open(*++argv,O_RDONLY,0)) == -1)
            {
                fprintf(stderr, "%s: can't open %s\n",prog, *argv);
                exit(1);
            }
            else
            {
                filecopy(fd, 1);
                close(fd);
            }
        }
    }

    exit(0);
}
示例#3
0
int main(int argc, char *argv[])
{
	FILE *fp;

	char * prog = argv[0]; /*program name for errors*/

	if (argc == 1)/*no args; copy standard input*/
		filecopy(stdin, stdout);
	else 
		while (--argc > 0)
			if ((fp = fopen(*++argv, "r")) == NULL)
			{
				fprintf(stderr, "%s: can't open %s\n", prog, *argv);
				exit(1);
			}
			else
			{
				filecopy(fp, stdout);
				fclose(fp);
			}
	if (ferror(stdout))
	{
		fprintf(stderr, "%s: error writing stdout\n", prog);
		exit(2);
	}

	return 0;
}
示例#4
0
文件: cat.c 项目: jinto-thomas/knr
main(int argc, char **argv)
{
	FILE *fp;
	void filecopy(FILE *, FILE *);
	char *prog = argv[0];

	if (argc == 1)
		filecopy(stdin,stdout);
	else {
		while (--argc > 0) {
			if ((fp = fopen(*++argv,"r")) == NULL) {
				printf("%d fp \n",fp);
				fprintf(stderr, "%s:cant open %s\n",
						prog,*argv);
				exit(1);
			} else {
				filecopy(fp, stdout);
				fclose(fp);
			}
		}
	}
	if (ferror(stdout)) {
		fprintf(stderr, "%s:error writing stdout\n",prog);
		exit(2);
	}
	exit(0);
}
示例#5
0
int main(int argc, char const *argv[])
{
    FILE *fp;
    const char *prog = argv[0];

    if (argc == 1)
        filecopy(stdin, stdout);
    else
        while (--argc > 0)
            if ((fp = fopen(*++argv, "r")) == NULL)
            {
                fprintf(stderr, "%s: cat: can't open %s\n", prog, *argv);
                exit(1);
            }
            else
            {
                filecopy(fp, stdout);
                fclose(fp);
            }

    if (ferror(stdout))
    {
        fprintf(stderr, "%s: error writing stdout\n", prog);
    }

    system("date");
    return 0;
}
示例#6
0
void
md_installboot(int devfd, char *dev)
{
	struct disklabel dl;

	/* Get and check disklabel. */
	if (ioctl(devfd, DIOCGDINFO, &dl) != 0)
		err(1, "disklabel: %s", dev);
	if (dl.d_magic != DISKMAGIC)
		errx(1, "bad disklabel magic=0x%08x", dl.d_magic);

	/* Warn on unknown disklabel types. */
	if (dl.d_type == 0)
		warnx("disklabel type unknown");

	bootldr = fileprefix(root, bootldr);
	if (!nowrite)
		filecopy(stage2, bootldr);

	/* Get bootstrap parameters to patch into proto. */
	if (getbootparams(bootldr, devfd, &dl) != 0)
		exit(1);

	/* Write boot blocks to device. */
	write_bootblocks(devfd, dev, &dl);
}
示例#7
0
FILE* changelog(FILE* log,SETTING* setting){
	char label[] = "[log]vhext.txt";
	const char *path = setting->data_user_path;
	if(path == NULL ){
		path = setting->data_owner_path;
	}
	if(path == NULL ){
		path = setting->data_optional_path;
	}
	if(path == NULL){
		return log;
	}
	long l = strlen(path) + strlen(label) + 1;
	char *newname = (char *)malloc(l);
	if(newname==NULL){
		return log;
	}
	long pos = strcspn(path,"_");
	strncpy(newname,path,pos);
	newname[pos] = '\0';
	strcat(newname,label);
	FILE* newlog = fopen(newname,"w");
	free(newname);
	if(newlog==NULL){
		return log;
	}
	fflush(log);
	filecopy(newlog,log);
	fclose(log);
	fflush(newlog);
	return newlog;
}
int main(int argc, char *argv[])
{
	if (argc == 1) {
		fprintf(stdout, "Usage: ./prog.out file_1, file_2, ...\n");
		return 0;
	}
	char *prog = argv[0];
	FILE *fp;
	unsigned page = 1;
	char *title = "\f#################################################\n\tFile: %s Page: %u\t\t\n#################################################\n\n";
	
	 while (--argc > 0) {
                        if ((fp = fopen(*++argv, "r")) == NULL) {
                                fprintf(stderr, "can't open %s\n", *argv);
                                exit(1);
                        } else {
				printf(title, *argv, page);
                                filecopy(fp, stdout);
                                fclose(fp);
				++page;
                        }
	}
        if (ferror(stdout)) {
                fprintf(stderr, "%s: error writing stdout\n", prog);
                exit(2);
        }
        exit(0);
}
示例#9
0
文件: 1_3-cat.c 项目: x45/bugfree-try
int main(int argc, char *argv[])
{
	int fd;
	void filecopy(int ifd, int ofd);

	if (argc == 1)
			filecopy(0, 1);
	else
			while (--argc > 0)
					if ((fd = open(*++argv, O_RDONLY)) == -1)
							error("cat: can't open %s",*argv);
					else {
							filecopy(fd, 1);
							close(fd);
					}
	return 0;
}
示例#10
0
int main(int argc, char *argv[])
{
    int fd;
    void filecopy(int, int);

    if (argc == 1)
        filecopy(STDIN, STDOUT);
    else 
        while (--argc > 0)
            if((fd = open(*++argv, O_RDONLY, 0)) == -1) {
                exit(1);
            } else {
                filecopy(fd, STDOUT);
                close(fd);
            }
    exit(0);
}
示例#11
0
文件: 7.5_cat_v1.c 项目: lignahc/Dev
int main(int argc, char *argv[])
{
  FILE *fp;
  void filecopy(FILE *, FILE *);

  if (argc == 1)
    filecopy(stdin, stdout);
  else
    while (--argc > 0)
      if ((fp = fopen(*++argv, "r")) == NULL) {
        printf("cat: can't open %s\n", *argv);
        return 1;
      } else {
        filecopy (fp, stdout);
        fclose(fp);
      }
  return 0;
}
示例#12
0
文件: pcp.c 项目: bobrippling/cbin
int copy(char *dest, char *src)
{
	FILE *in, *out;
	int ret;
	char *actualdest = dest;

	if(samefile(dest, src)){
		eprintf("`%s' and `%s' are the same file", dest, src);
		return 1;
	}

	if(!(in = fopen(src, "r"))){
		perrorf("open (for read): `%s'", src);
		return 1;
	}

	/* TODO: make dir if it doesn't exist */
	if(!(out = fopen(dest, "w"))){
		if(errno == EISDIR){
			char *srcbase = strrchr(src, '/');

			if(!srcbase)
				srcbase = src;

			actualdest = alloca(strlen(dest) + strlen(srcbase) + 2);
			sprintf(actualdest, "%s/%s", dest, srcbase);

			if(samefile(actualdest, src)){
				eprintf("`%s' and `%s' are the same file", actualdest, src);
				fclose(in);
				return 1;
			}

			out = fopen(actualdest, "w");
			if(!out){
				perrorf("open (for write): `%s'", actualdest);
				fclose(in);
				return 1;
			}
		}else{
			perrorf("open (for write): `%s'", dest);
			fclose(in);
			return 1;
		}
	}

	ret = filecopy(in, out, actualdest, filelen(src));

	fclose(in);
	fclose(out);

	if(!i_am_cp && remove(src))
		perrorf("non-fatal: remove: `%s'", src);

	return ret;
}
示例#13
0
/* cat: concatenate files */
main(int argc, char *argv[])
{
	int fd;
	void filecopy(int, int);
	char *prog = argv[0]; /* program name for errors */

	if(argc == 1) /* no args: copy standard input */
		filecopy(STD_IN, STD_OUT);
	else
	    while(--argc > 0)
		if((fd = open(*++argv, O_RDONLY, 0)) == -1){
		   fprintf(stderr, " %s: can't open %s\n", prog, *argv);
		   return 1;
		} else {
		    filecopy(fd, STD_OUT);
		    close(fd);
		}
	return 0;
}
示例#14
0
void makesvd(char *in_dir, char *smvfile){
  char *file_out=NULL,*svd;

  if(smvfile==NULL)return;
  svd=strrchr(smvfile,'.');
  if(svd==NULL)return;

  NewMemory((void **)&file_out,(svd-smvfile)+4+1);
  strcat(file_out,smvfile);
  strcpy(svd,".svd");

  if(in_dir==NULL){
    filecopy(".",smvfile,file_out);
  }
  else{
    filecopy(in_dir,smvfile,file_out);
  }

}
示例#15
0
static char *report_xslt_recover(char *out_name)
{
  int complete = 0;
  FILE *f;

  /* Open input file */
  f = fopen(out_name, "r");
  if ( f == NULL ) {
    fprintf(stderr, "%s: Error opening Test Output file: %s\n", out_name, strerror(errno));
    return NULL;
  }

  /* Check for file completion */
  if ( fseek(f, -20, SEEK_END) ) {
    fprintf(stderr, "%s: Error seeking Test Output file: %s\n", out_name, strerror(errno));
  }
  else {
    char *buf = NULL;
    int size = 0;

    /* Look for last XML element */
    while ( !complete && !feof(f) ) {
      int len = fgets2(f, &buf, &size);

      if ( len < 0 )
        break;

      if ( (len > 0) && (buf != NULL) ) {
        if ( strcmp(strskip_spaces(buf), "</RESULT>") == 0 )
          complete = 1;
      }
    }

    if ( buf != NULL )
      free(buf);
  }

  /* Close input file */
  fclose(f);

  if ( complete )
    return out_name;

  /* Setup name of recovered file */
  report_xslt_filename = (char *) realloc(report_xslt_filename, strlen(out_name)+16);
  sprintf(report_xslt_filename, "%s.tmp%d", out_name, getpid());

  if ( filecopy(out_name, report_xslt_filename) )
    return NULL;

  if ( xml_recover(report_xslt_filename) )
    return NULL;

  return report_xslt_filename;
}
示例#16
0
int main(int argc, char * argv[])
{
 FILE *ifp;
 FILE *ofp;
 
 //无参数的情况(输入显示输入显示)
 if(argc == 1){
    filecopy(stdin, stdout);
 }else{
      while(--argc > 0)
        if((ifp = fopen(*++argv, "r")) == NULL){
            printf("cat: can't open %s\n", *argv);
            exit(1);
        }else{
            filecopy(ifp, stdout);
            fclose(ifp);
        }
 }
 return 0;
}
示例#17
0
文件: mincat.c 项目: ptdecker/cbasics
int main(int argc, char *argv[]) {

    int     fd;
    clock_t start = clock();

    if (argc == 1) {
        filecopy(0, 1);
        return 0;
    }

    while (--argc > 0)
        if ((fd = open(*++argv, O_RDONLY)) == -1)
            error("mincat: cannot open file %s", *argv);
        else {
            filecopy(fd, 1);
            (void)close(fd);
        }

    printf("Run time: %u clock ticks\n", (unsigned)(clock() - start));
    return 0;
}
示例#18
0
int main(int argc, char *argv[])
{
    FILE *fp;
    void filecopy(FILE *, FILE *);
    char *prog = argv[0];

    if (argc == 1)
        filecopy(stdin, stdout);
    else 
        while (--argc > 0)
            if((fp = fopen(*++argv, "r")) == EOF) {
                fprintf(stderr, "%s: can't open %s\n", prog, *argv);
                exit(1);
            } else {
                filecopy(fp, stdout);
                fclose(fp);
            }
    if (ferror(stdout)) {
        fprintf(stderr, "%s: error writing stdout\n", prog);
        exit(2);
    }
    return 0;
}
示例#19
0
文件: cat.c 项目: taras-ko/c
main(int argc, char *argv[])
{
	_FILE *fp;
	void filecopy(_FILE *, _FILE *);
	char *prog = argv[0];

	if (argc == 1) /* no args stdin -> stdout */
		filecopy(_stdin, _stdout);
	else
		while (--argc > 0)
			if ((fp = _fopen(*++argv, "r")) == NULL) {
				fprintf(stderr, "%s: can't open %s\n", prog, *argv);
				exit(1);
			} else {
				filecopy(fp, _stdout);
				//fclose(fp);
			}
	if (_ferror(_stdout)) {
		fprintf(stderr, "%s: error writing stdout\n", prog);
		exit(2);
	}
	exit(0);
}
示例#20
0
static void action_copy(const char *filename) {
    char *nuname;
    int fd = getdest(filename, &nuname);

    if(fd < 0 || filecopy(filename, nuname)) {
	logg("!Can't copy file '%s'\n", filename);
	notmoved++;
	if(nuname) unlink(nuname);
    } else
	logg("~%s: copied to '%s'\n", filename, nuname);

    if(fd>=0) close(fd);
    if(nuname) free(nuname);
}
示例#21
0
int main(int argc, char *argv[])
{
  int fd1;
  void filecopy(int f, int t);
  
  if(argc == 1)
    filecopy(0, 1);

  else {
    while(--argc > 0)
      if(( fd1 = open(*++argv, O_RDONLY, 0)) == -1) {
	printf("unix cat: can't open %s\n", *argv);
	return 1;
      }
      else {
	filecopy(fd1, 1);
	close(fd1);
      }
  }
  
  return 0;
  
}
示例#22
0
/* cat: concatena archivos, version 2 */
int main( int argc, char *argv[] ){
  FILE *fp;
  void filecopy( FILE *, FILE * );
  char *prog = argv[ 0 ];   /* nombre del programa para errores     */

  if( argc == 1 )           /* sin args; copia la entrada estandar  */
    filecopy( stdin, stdout );
  else
    while( --argc > 0 )
      if( (fp = fopen( *++argv, "r" )) == NULL ){
        fprintf( stderr, "%s: no se puede abrir %s\n", prog, *argv );
        exit( 1 );
      } else {
        filecopy( fp, stdout );
        fclose( fp );
      }

  if( ferror( stdout ) ){
    fprintf( stdout, "%s: error al escribir stdout\n", prog );
    exit( 2 );
  }

  exit( 0 );
}
示例#23
0
int main(int argc, char *argv[])
{
	FILE *fp;
	char *prog;

	prog = argv[0];

	if (argc == 0)
	{
		filecopy(stdin, stdout);
	}
	else
	{
		while (--argc > 0)
		{
			if (NULL == (fp=fopen(*++argv, "r")))
			{
				fprintf(stderr, "%s: can't open %s.\n", prog, *argv);
				exit(1);
			}
			else
			{
				filecopy(fp, stdout);
				fclose(fp);
			}
		}
	}

	if (ferror(stdout))
	{
		fprintf(stderr, "%s: error writing stdout.\n", prog);
		exit(2);
	}

	exit(0);
}
示例#24
0
文件: char.c 项目: Nurarihyo/smo-sa
int saveCharOne( char *id , int num , char *input )
{
	char fn[1024];
	FILE *fp;
	char *strp;
	char *strp1;     // Won 修正 hp 為負的人
	
	makeCharFileName( id , fn , sizeof(fn),num );
	fp= fopen( fn , "w" );
	if( fp == NULL ) {
		log( "save error 01: %d",errno );//Change add errno
		return -1;
	}
	
	// Won 修正 hp 為負的人
	if ((strp=strstr(input,"\\nhp=-"))!=NULL) {
		strp1=strstr(input,"\\nmp="); 
		*(strp+5)='1';
		strcpy((strp+6), strp1);  
	}
	
	// Arminius
	if ((strp=strstr(input,"\\nhp=0\\n"))!=NULL) *(strp+5)='1';
	
	fprintf( fp , "%s" , input );
	fclose(fp);
	
#if 0 //_SLEEP_CHAR // 舊檔也存
	{
		char fn1[1024], fn2[1024];
		makeSleepCharFileName( id , fn1 , sizeof(fn1),num );
		fp = fopen( fn1 , "w" );
		if( fp != NULL ) {
			fprintf( fp , "%s" , input );
			fclose(fp);
		}
		
		// 複製新倉庫檔到舊檔
		makeCharPoolItemFileName( id, fn1, sizeof(fn));
		makeSleepCharPoolItemFileName( id, fn2, sizeof(fn));
		filecopy( fn1, fn2);
	}
#endif
	
	log( "wrote %s char file:%s\n",id , fn );
	return 0;
	
}
示例#25
0
void source_compile_raw(group *s)
{
  char srcname[4096];
  if(!findfile(srcname, s->file)) {
    printf("Error: %s not found (source %s)\n", s->file, s->name);
    exit(1);
  }

  char binname[4096];
  snprintf(binname, sizeof(binname), BUILDDIR"/%s", s->name);
  filecopy(srcname, binname);

  section *sec = section_find_ext(s->name, "");
  sec->size = filesize(srcname);

  printf("SOURCE COMPILE RAW. size = 0x%08X\n", (u32)sec->size);
}
示例#26
0
文件: edit.c 项目: ISLEcode/kornshell
/*
 * Edit a message list.
 */
static int
edit1(struct msg* msgvec, int type)
{
	register struct msg*	ip;
	register struct msg*	mp;
	FILE*			fp;
	off_t			size;
	sig_t			sigint;

	/*
	 * Deal with each message to be edited . . .
	 */
	for (ip = msgvec; ip->m_index; ip++) {
		if (ip > msgvec) {
			char	buf[100];
			char*	p;

			note(PROMPT, "Edit message %d [ynq]? ", ip->m_index);
			if (!fgets(buf, sizeof buf, stdin))
				break;
			for (p = buf; isspace(*p); p++);
			if (*p == 'q' || *p == 'Q')
				break;
			if (*p == 'n' || *p == 'N')
				continue;
		}
		state.msg.dot = mp = state.msg.list + ip->m_index - 1;
		touchmsg(mp);
		sigint = signal(SIGINT, SIG_IGN);
		if (fp = run_editor(setinput(mp), mp->m_size, NiL, type, state.readonly)) {
			if (!state.msg.op)
				settmp(NiL, 0);
			fseek(state.msg.op, (off_t)0, SEEK_END);
			size = ftell(state.msg.op);
			mp->m_block = blocknumber(size);
			mp->m_offset = blockoffset(size);
			msgflags(mp, MODIFY, 0);
			rewind(fp);
			filecopy(NiL, fp, state.tmp.dir, state.msg.op, NiL, (off_t)0, &mp->m_lines, &mp->m_size, 0);
			fileclose(fp);
		}
		signal(SIGINT, sigint);
	}
	return 0;
}
示例#27
0
void client::display()
{

       ifstream file("emp.txt",ios::binary);
       int total=0,tamt=0;

       if(!file)
       {
	    cout<<"\n\n\n\t\t\t-*** NO RECORD PRESENT ***-";
	    file.close();
	    return;
       }

       client ob1;
       filecopy();
       long ecode[20];
       int i=0,flag=0;
       for(i=0;i<20;i++)
       ecode[i]=0;
       i=0;
       fflush(stdin);
       while( file.read((char*)&ob1,sizeof ob1))
       {
	    for(int c=0;c<=i;c++)
	    if(ecode[c]==ob1.empcd||ob1.billamt==0)
	    {
		 flag=1;
	    }
	    if(flag!=1)
	    {
		 ecode[i]=ob1.empcd;
		 i++;
		 dis(ecode[i-1]);
		 total=total+1;
	    }
	    flag=0;
	    cout<<endl;

	    tamt=tamt+ob1.billamt;
	}

	cout<<"\nTOTAL NO OF EMPLOYEE = "<<total;
	cout<<"\n\n\tTOTAL AMOUNT = "<<tamt;
	file.close();
}
示例#28
0
int main(int argc, char *argv[])
{
    FILE *fp1, *fp2;
    if (argc > 1) {
        if((fp1 = fopen(*++argv, "r")) == NULL) {
            printf("can't fopen %s\n", *argv);
            return 0;
        }
        if((fp2 = fopen(*++argv, "w")) == NULL) {
            printf("can't fopen %s\n", *argv);
            return 0;
        }
        filecopy(fp1, fp2);
        fclose(fp1);
        fclose(fp2);
    }
    return 0;
}
示例#29
0
static void action_move(const char *filename) {
    char *nuname;
    int fd = getdest(filename, &nuname), copied = 0;

    if(fd<0 || (rename(filename, nuname) && (copied=1) && filecopy(filename, nuname))) {
	logg("!Can't move file %s\n", filename);
	notmoved++;
	if(nuname) unlink(nuname);
    } else {
	if(copied && unlink(filename))
	    logg("!Can't unlink '%s': %s\n", filename, strerror(errno));
	else
	    logg("~%s: moved to '%s'\n", filename, nuname);
    }

    if(fd>=0) close(fd);
    if(nuname) free(nuname);
}
示例#30
0
int main(int argc, char *argv[]) {
  FILE *file;
  char *program_name;
  program_name = argv[0];
  if (2 != argc) {
    fprintf(stderr, "usage: %s filename \n", program_name);
  } else {
    if (NULL == (file = fopen(argv[1], "r+b"))) {
      fprintf(stderr, "%s: can't open %s\n", program_name, argv[1]);
      return 1;
    } else {
      filecopy(stdin, file);
      fclose(file);
    }
    if (ferror(file)) {
      fprintf(stderr, "%s: error writing %s\n", program_name, argv[1]);
      return 2;
    }
  }
  return 0;
}