UNIX2DOS工具

系统 1583 0

今天写了一个UNIX2DOS工具,用于把UNIX系统的文本转换成DOS(Windows)下支持的文本。

两大操作系统文本主要的不同在于换行时UNIX里只有 '\n'字符,而在DOS(Windows)下变成了'\r\n'。


废话不多说,此工具用C语言写成,源代码如下:

 

// unix2dos
//
#include  < stdio.h >
#include 
< stdlib.h >

int  main( int  argc, char   * argv[])
{
    
int  ch;
    FILE 
* fpinPtr, * fpoutPtr;

    
if  (argc != 3 )
    {
        printf(
" UNIX2DOS program.\n\n " );
        printf(
" Usage: command source_file target_file\n " );
        printf(
" Usage example: \ " unix2dos src.txt obj.txt\ " \n " );
        exit(EXIT_FAILURE);
    }

    
if  ((fpinPtr = fopen(argv[ 1 ], " rb " )) == NULL)
    {
        printf(
" Input file \ " % s\ "  could not be opened\n " ,argv[ 1 ]);
        exit(EXIT_FAILURE);
    }

    
if  ((fpoutPtr = fopen(argv[ 2 ], " wb " )) == NULL)
    {
        printf(
" Outout file \ " % s\ "  could not be opened\n " ,argv[ 2 ]);
        exit(EXIT_FAILURE);
    }

    
while ( ! feof(fpinPtr))
    {
        ch
= fgetc(fpinPtr);
        
if (ch >- 1   &&  ch  !=   ' \n ' )
        {
            fputc(ch,fpoutPtr);
        }
        
else   if (ch >- 1 )
        {
            fputc(
' \r ' ,fpoutPtr);
            fputc(ch,fpoutPtr);
        }

    }

    fclose(fpinPtr);
    fclose(fpoutPtr);

    
return   0 ;
}

 

当然,还有一个附加产品:DOS2UNIX,源代码如下:


// dos2unix
//
#include  < stdio.h >
#include 
< stdlib.h >

int  main( int  argc, char   * argv[])
{
    
int  ch;
    FILE 
* fpinPtr, * fpoutPtr;

    
if  (argc != 3 )
    {
        printf(
" DOS2UNIX program.\n\n " );
        printf(
" Usage: command source_file target_file\n " );
        printf(
" Usage example: \ " DOS2UNIX src.txt obj.txt\ " \n " );
        exit(EXIT_FAILURE);
    }

    
if  ((fpinPtr = fopen(argv[ 1 ], " rb " )) == NULL)
    {
        printf(
" Input file \ " % s\ "  could not be opened\n " ,argv[ 1 ]);
        exit(EXIT_FAILURE);
    }

    
if  ((fpoutPtr = fopen(argv[ 2 ], " wb " )) == NULL)
    {
        printf(
" Outout file \ " % s\ "  could not be opened\n " ,argv[ 2 ]);
        exit(EXIT_FAILURE);
    }

    
while ( ! feof(fpinPtr))
    {
        ch
= fgetc(fpinPtr);
        
if (ch >- 1   &&  ch  !=   ' \r ' )
        {
            fputc(ch,fpoutPtr);
        }
    }

    fclose(fpinPtr);
    fclose(fpoutPtr);

    
return   0 ;
}

 


参考代码源:HP UNIX CP命令 ,欢迎各位高手批评指正。 


Wednesday, May 06, 2009

 

 

UNIX2DOS工具


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论