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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти замену strcasestr, подскажите аналог 
V
    Опции темы
Nab
Дата 5.11.2006, 04:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

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



Компилю прогу под стареньким дистром на ядре 2.0.39, 
единственное место где получился затык это

Код

    toline = (char *)strcasestr(buffer->str, headers[cur_header]);


Порывшись в манах своей системы нашел что это регистронезависимый вариант strstr
сейчас у меня она компилиться и работает вот с такой строчкой
Код

    toline = (char *)strstr(buffer->str, headers[cur_header]);

но из мана 
Код

CONFORMING TO
       The  strstr() function conforms to ISO 9899.  The strcasestr() function
       is a non-standard extension.


то есть проблема именно в этой функции, 
подскажите плиз как ее заменить чтоб функциональность не страдала, и компилилось вот этим
Код

slackware:/mnt/hd1/src/prog-1.00# gcc --version
2.8.1


Какую еще инфу нужно указать?

Просто C не мой родной язык smile.



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
MAKCim
Дата 5.11.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Код

#define _GNU_SOURCE
#include <string.h>

#ifndef _GNU_SOURCE
#include "string.h"
#endif

char* find(const char* src, const char* dest) {
#ifdef _GNU_SOURCE
    return strcasestr(src, dest);
#else
    return <своя функция из "string.h" или strstr>
#endif
}


Это сообщение отредактировал(а) MAKCim - 5.11.2006, 11:18


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


Фигасе
****


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

Репутация: 8
Всего: 58



Nab, 
А тупо заменить на while (или for) с проверкой strcasecmp с каждого байта ? Работать будет..........

Добавлено @ 12:54 
ГЫ 
т.е.
while (*ptr) {
  if (! strcasecmp (ptr, "stroka")))
     break; // совпало.
 ++ptr;
}


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 5.11.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



GrayCardinal
стандартные то функции на asm-е в libc написаны
все таки они будут более оптимизированы чем код компилятора (даже gcc)
хотя в этом случае ей (оптимизацией) в виду незначительности можно и пренебречь  smile 

Это сообщение отредактировал(а) MAKCim - 5.11.2006, 12:59


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
GrayCardinal
Дата 5.11.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


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

Репутация: 8
Всего: 58



MAKCim, 
Ага, аж два раза быстрее, ага, разбежался  smile 
Я на асме под 64-битку переписывал bzero и сравнивал с тупым while.
Разница в скорости - около процента. Я чуть не повешался... Около дня убил шоб на асм переключится, а все зря.


ЗЫ
в тему - gcc до 2.95 в принципе не может нормально компилировать проги. The fact. 


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 5.11.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

Ага, аж два раза быстрее, ага, разбежался 

Про два раза я не говорил  smile 
Цитата

Разница в скорости - около процента. Я чуть не повешался

Цитата

хотя в этом случае ей (оптимизацией) в виду незначительности можно и пренебречь



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Nab
Дата 6.11.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

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



GrayCardinal, сенкс. Именно то что нужно было.

Искал тупое решение smile потому как прога не самая важная и производительность не главная задача... главное было функционал сохранить smile

Еще раз всем откликнувшимся спасибо...



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

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

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


 




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


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

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