• UNIX2DOS工具


    今天写了一个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

  • 相关阅读:
    Android 下拉刷新之ScrollView--PullToRefreshScrollView
    Android 将Openfire中的MUC改造成类似QQ群一样的永久群
    Android多行文本折叠展开效果
    Android关于实现EditText中加多行下划线的的一种方法
    Android 官方下拉刷新组件SwipeRefreshLayout
    listview滑动顶部停靠(stickyListHeadersListView)
    Hadoop HBase概念学习系列之优秀行键设计(十六)
    Hadoop HBase概念学习系列之HBase里的长表VS宽表VS窄表(十五)
    Hadoop HBase概念学习系列之HBase里的客户端和HBase集群建立连接(详细)(十四)
    Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)
  • 原文地址:https://www.cnblogs.com/Leon5/p/1450639.html
Copyright © 2020-2023  润新知