首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C语言实现shell中wc命令

wc命令是一个用于统计文件中字节数、字数、行数的Unix/Linux命令。下面是用C语言实现wc命令的示例代码:

代码语言:txt
复制
#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc != 2) {
        printf("Usage: %s <filename>\n", argv[0]);
        return 1;
    }

    FILE *file = fopen(argv[1], "r");
    if (file == NULL) {
        printf("Failed to open file: %s\n", argv[1]);
        return 1;
    }

    int lines = 0;
    int words = 0;
    int bytes = 0;
    int in_word = 0;
    char ch;

    while ((ch = fgetc(file)) != EOF) {
        bytes++;

        if (ch == '\n') {
            lines++;
        }

        if (ch == ' ' || ch == '\t' || ch == '\n') {
            in_word = 0;
        } else if (in_word == 0) {
            in_word = 1;
            words++;
        }
    }

    fclose(file);

    printf("Lines: %d\n", lines);
    printf("Words: %d\n", words);
    printf("Bytes: %d\n", bytes);

    return 0;
}

这段代码首先检查命令行参数的数量,确保只传入一个文件名。然后尝试打开该文件,如果打开失败则输出错误信息并退出。

接下来,代码使用循环逐个读取文件中的字符。在循环过程中,统计行数、字数和字节数。通过判断空格、制表符和换行符来确定是否处于一个单词内,并根据需要更新字数。

最后,关闭文件并输出统计结果。

这是一个简单的用C语言实现wc命令的示例,可以通过编译运行来统计文件的行数、字数和字节数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券