Re: getline
On Wed, Apr 28, 2004 at 06:18:59PM +0700, php-coder wrote:
> --- quest.c ---
> #include <stdio.h>
> #include <stdlib.h>
> int main(int argc, char **argv)
> {
> void func()
> {
> char *p;
> size_t n=30;
> p=(char *)malloc(n);
> getline(p, &n, stdin);
> printf("Вы ввели: %s\n", *p);
> free(p);
> }
> func();
> return 0;
> }
> --- E O F ---
>
> Компилирую:
>
> [coder@experiment test2]$ gcc quest.c -o quest -g -Wall -ansi -pedantic
> quest.c: In function `main':
> quest.c:6: warning: ANSI C forbids nested functions
> quest.c: In function `func':
> quest.c:10: warning: implicit declaration of function `getline'
> quest.c:11: warning: format argument is not a pointer (arg 2)
>
> Почему он жалуется на то, что не объявлена ф-ция, если она в stdio.h
> должна быть
Её не должно быть в stdio.h. Это GNU-extension. Ты забыл сделать
#define _GNU_SOURCE
К тому же у тебя ошибка: и первый, и второй аргументы --- это возвращаемые
значения, поэтому они являются указателями. Надо сделать так:
getline(&p, &n, stdin);
> и что ему не нравится во втором аргументе?
Тут тоже ошибка:
printf("Вы ввели: %s\n", p);
--
Andrey V. Kiselev
Home phone: +7 812 5274898 ICQ# 26871517
Reply to:
- References:
- getline
- From: php-coder <php-coder@ngs.ru>