Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> getdents, линкер ругается 
:(
    Опции темы
500mhz
  Дата 10.9.2012, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Собственно вопрос
Пытаюсь вызвать getdents (на С) , все компилится но линкер ругается.
Цитата

undefined reference to `getdents'


На ассемблере 141 функция прекрасно вызывается

вывод strace
Цитата

getdents(3, /* 5 entries */, 100)       = 80


Что я делаю не так?

пс
readdir мне не подходит


--------------------

PM MAIL ICQ   Вверх
boostcoder
Дата 10.9.2012, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



хм...
Цитата

This is not the function you are interested in.  Look at readdir(3) for the POSIX conforming C library interface.  This page documents the bare kernel system call interface.

http://www.kernel.org/doc/man-pages/online...getdents.2.html

Добавлено через 1 минуту и 35 секунд
Цитата(500mhz @  10.9.2012,  10:52 Найти цитируемый пост)
На ассемблере 141 функция прекрасно вызывается

from user space code?


Это сообщение отредактировал(а) boostcoder - 10.9.2012, 11:25
PM WWW   Вверх
500mhz
Дата 10.9.2012, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Да из под юсера 

mov eax,141   ;getdents
int 0x80

прекрасно работает


--------------------

PM MAIL ICQ   Вверх
bsa
Дата 10.9.2012, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



http://www.kernel.org/doc/man-pages/online...getdents.2.html
Цитата
       Glibc does not provide a wrapper for this system call; call it using
       syscall(2).  You will need to define the linux_dirent structure yourself.

       This call supersedes readdir(2).

       The original Linux getdents() system call did not handle large file systems
       and large file offsets.  Consequently, Linux 2.4 added getdents64(), with
       wider types for the d_ino and d_off fields employed in the linux_dirent
       structure.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.