我的代码是否足以防止溢出?

时间:2013-05-25 04:02:01

标签: c file-io buffer fopen buffer-overflow

在我的C程序中,对于文件i / o,只需将其放入:

    FILE *fp = fopen("example.txt", "r");
    char *buffer = malloc(sizeof(*fp));

在我使用的情况下:

    while (fgets(buffer, sizeof(*fp), fp) != NULL) {
        //do stuff
    }

在这种情况下,写入缓冲区会不会出现缓冲区溢出?

1 个答案:

答案 0 :(得分:1)

不,你永远不会得到缓冲区溢出。但看起来您认为sizeof(*fp)正在产生文件的大小,而事实并非如此。那就是给你一个FILE结构的大小。