LinuxÒÁµéÔ°ÂÛ̳'s Archiver

¼òµ¥linux ·¢±íÓÚ 2008-5-15 10:19

³ÌÐòÔÚ¶àÎļþÇé¿öÏÂÔËÐÐ,Ìáʾ¶Î´íÎó.µ«ÊǰÑËùÓдúÂë·ÅÔÚÒ»¸öÎļþÖÐÔËÐÐÕýÈ·

¸÷λǰ±²,±¾È˸Õѧϰlinuxϵͳϱà³Ì.ÏÖÔÚÓöµ½ÕâÑùÒ»¸öÒÉÎÊ,°ÑËùÓдúÂë·ÅÔÚmainº¯ÊýÖбàÒëÔËÐÐ,Ò»ÇÐÕý³£.µ«ÊÇ,Èç¹û°Ñ´úÂë·Ö·ÅÔÚ²»Í¬µÄCÎļþÖÐ,±àÒëÕýÈ·,Ö´ÐÐʱÖÕ¶ËÌáʾ"¶Î´íÎó".ÎÒ°Ñ´úÂëÌù³öÀ´,ʵÏÖÒ»¸ö¼òµ¥µÄ¹¦ÄÜ,½«Ò»¸öÎļþµÄÄÚÈÝ¿½±´µ½ÁíÒ»¸öÎļþÖÐ,Çë´ó¼Ò°ïÎÒ¿´¿´,ÎÊÌâ³öÔÚÄÄÀï?
ÏÂÃæÊÇËùÓдúÂë¶¼ÔÚmainº¯ÊýÖеÄÇé¿ö:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
                   FILE *in, *out;
         char ch;
         if(argc != 3)
         {
                 printf("Yon forgot to enter a filename. \n");
                 exit(1);
         }
         if((in = fopen(argv[1], "rb")) == NULL)
         {
                 printf("Can not open source file.\n");
                exit(1);
         }

         if((out = fopen(argv[2],"wb")) == NULL)
         {       
                 printf("Can not open distination file.\n");
                 exit(1);
         }

         while(!feof(in))
         {
                 ch = getc(in);       
                 if(!feof(in))
                 putc(ch,out);                 
         }
         fclose(in);
         fclose(out);
         return 0;       
         
}
ÔÚÖÕ¶ËÖÐÔËÐÐÃüÁî:
[user@local host user]$ gcc workspace/copyfile/main.c
[user@local host user]$ ./a.out   tsee   aaa
ÎļþÄܹ»Õý³£Éú³É.
ÏÂÃæÊǷֳɶàÎļþµÄÇé¿ö:
/*******main.c*************/
#include <stdio.h>
#include <stdlib.h>
#include "file.h"
#include "GetAndPut.h"
int main(int argc, char *argv[])
{

        FILE *in, *out;
        char ch;
        if(argc != 3)
        {
                printf("Yon forgot to enter a filename,\n");
                exit(1);
        }
        Openfile(argv[1], "rb");

        Openfile(argv[2], "wb");

        while(!feof(in))
        {
                ch = GetCharFromFile(in);
       
                if(!feof(in))
                PutCharToFile(ch, out);
        }
        fclose(in);
        fclose(out);
        return 0;
}

/***********file.h*****************/
FILE * Openfile(const char *strFileName, const char *mode);

/***********file.c*****************/
#include <stdio.h>
#include "file.h"
FILE * Openfile(const char *strFileName, const char *mode)
{
        FILE * fp;
        if((fp = fopen(strFileName, mode)) == NULL)
        {
                 printf("Can not open distination file.\n");
                //printf("open failed ! %s", strFileName);
                exit(1);
        }
        return fp;                       
}

/***********GetAndPut.h*****************/
char GetCharFromFile(FILE  *fp);
int PutCharToFile(char chTemp, FILE *fp);

/***********GetAndPut.c*****************/
#include"stdio.h"
char GetCharFromFile(FILE  *fp)
{
        char chTemp;
        chTemp = getc(fp);
        return chTemp;
}
int PutCharToFile(char chTemp, FILE *fp)
{
        int nReturn;
        putc(chTemp, fp);
        return nReturn;
}
ÔÚÖÕ¶ËÔËÐÐÃüÁî:
[user@local host user]$ gcc workspace/copyfile/main.c  workspace/copyfile/file.c  workspace/copyfile/GetAndPut.c
[user@local host user]$ ./a.out   tsee  bbbbb
¶Î´íÎó
[user@local host user]$

[[i] ±¾Ìû×îºóÓÉ ¼òµ¥linux ÓÚ 2008-5-15 10:21 ±à¼­ [/i]]

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.