Re: getline

2004-04-28 Пенетрантность Andrey Kiselev
On Wed, Apr 28, 2004 at 06:18:59PM +0700, php-coder wrote:
>   --- quest.c ---
>   #include 
>   #include 
>   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 ---
> 
>   Компилирую:
> 
>   [EMAIL PROTECTED] 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



Re: getline

2004-04-28 Пенетрантность Sergey V. Burchu
Wed, Apr 28, 2004 at 06:18:59PM +0700, you(php-coder) wrote:
>   Компилирую:
> 
>   [EMAIL PROTECTED] 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
>   должна быть и что ему не нравится во втором аргументе?

man getline:
SYNOPSIS
   #define _GNU_SOURCE
   #include 

Добавь #define _GNU_SOURCE
Может поможет.

>   Прошу у вас помощи. Понимаю, что это не совсем по теме, но где
>   спросить не знаю. Заранее благодарю за помощь!

-- 
Burchu Sergey.



Re: getline

2004-04-28 Пенетрантность Дмитрий Петров
On Wednesday 28 April 2004 15:18, php-coder wrote:
ph> 10010100100100101::28.04.2004::011000100100100010000100010
ph>
ph>   Привет, Linuxоиды!
ph>
ph>   Есть простенькая программа:

ph>   --- E O F ---
ph>
ph>   Компилирую:
ph>
ph>   [EMAIL PROTECTED] test2]$ gcc quest.c -o quest -g -Wall -ansi -pedantic
ph>   quest.c: In function `main':
ph>   quest.c:6: warning: ANSI C forbids nested functions

ANSI C запрещает вложенные функции.
Функцию нельзя объявлять внутри main()


getline

2004-04-28 Пенетрантность php-coder
10010100100100101::28.04.2004::011000100100100010000100010

  Привет, Linuxоиды!
  
  Есть простенькая программа:

  --- quest.c ---
  #include 
  #include 
  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 ---

  Компилирую:

  [EMAIL PROTECTED] 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
  должна быть и что ему не нравится во втором аргументе?

  Прошу у вас помощи. Понимаю, что это не совсем по теме, но где
  спросить не знаю. Заранее благодарю за помощь!
  
-- 
  С уважением, php-coder (mailto:php-coder[at]ngs[dot]ru)
  Registered Linux User #327594
  Debian 3.0 r2 (kernel 2.4.26)

010010010010010001010101100::Linux RuleZz!::10001001000100010001000111