Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andy Fedotov                         2:5020/732     15 Oct 2000  19:41:48
 To : Fedor Lizunkov
 Subject : Re: perl, C
 -------------------------------------------------------------------------------- 
 
 > Тут пожалуйста продолжите, чтобы потом можно было получить со стека этот
 > чертов указатель на av и работать с ним, типа получить размер массива и
 > доступ к его содержимому ...
 
 А почему ты не пользуешьcя xsub ? Зачем влоб на C писать, когда можно
 написать на xs, и прогнать через xsubpp препроцессор ? Как минимум с
 аргументами и возвращаемыми типами данных проще будет.
 
 Вообще в твоем случае наверное так:
 
 XS(perl_Cfunc)
 {
     dXSARGS;
     {
       SV *array_ref = ST(0); // сняли со стека аргументов 1-й аргумент -
                              // array reference, являющийся Scalar Value.
       AV *array;
       SV **scalar;
       STRLEN len;
       I32 i;
 
       array = (AV *) SvRV(array_ref); // дереференснули reference на array,
                                       // и получили собственно сам array. 
 
       // далее в цикле печатаем по-очереди значения всех элементов этого
       // array.
       for(i=0;i<=av_len(array);i++) {
          scalar = av_fetch(array,i,0);
          printf("Value %d = '%s'\n",i,SvPV(*scalar,len));
        }
     }
     XSRETURN_EMPTY;
 }
 
 Вот тут все написано:
 
 man perlxs
 man perlxstut
 man perlguts
 -- 
 see u.. af.
 --- tin/1.4.1-19991201 ("Polish") (UNIX) (Linux/2.0.36 (i486))
  * Origin: Каждой твари по витой паре (2:5020/732@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 perl, C   Fedor Lizunkov   14 Oct 2000 23:23:36 
 Re: perl, C   Andy Fedotov   15 Oct 2000 19:41:48 
 perl, C   Fedor Lizunkov   16 Oct 2000 08:52:46 
 perl, C   Alexey Froloff   19 Oct 2000 01:21:02 
 perl, C   Fedor Lizunkov   19 Oct 2000 20:03:36 
 perl, C   Alexey Froloff   16 Oct 2000 21:09:33 
Архивное /ru.perl/13387f573aeda.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional