Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15

Как добавлять в библиотеку отсутствующие функции, типа scanf_s, printf_s ?

09.12.2020, 20:50. Показов 2683. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу добавить в библиотеку данные функции, чтоб не исправлять код каждый раз.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2020, 20:50
Ответы с готовыми решениями:

Функции gets_s, printf_s и другие с подчеркиванием
Я так понимаю, что все данные функции появились в Visual Studio и являются улучшенным вариантом их прототипов. К тому же IDE Dev-C++(с...

Как добавлять файлы в поля типа TBlobField?
Есть таблица, сделанная в Database Desktop. Есть программка в Delphi для работы с этой БД. В БД есть 2 поля ParadoxOLE. Подскажите,...

Как в приложения asp.net добавлять элементы типа: Edit, Button?
Есть Mono на Arch. Как в приложения asp.net добавлять елементы типа: Edit,Button??

15
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
11.12.2020, 15:16
Э-э-э... В какую библиотеку? Код функций самописный или выдран из готовых libc и т.п.?
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
11.12.2020, 16:15  [ТС]
Цитата Сообщение от drfaust Посмотреть сообщение
Э-э-э... В какую библиотеку?
Ну знаю, что можно создать пользовательский файл и указывать его в виде "stdio.h", вместо <stdio.h>, вот про него говорю. А как добить правильно, не знаю.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
12.12.2020, 18:53
`мама`, сформулируйте проблему яснее. Не могу понять что требуется, в чём затык...
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
12.12.2020, 19:35  [ТС]
Неужели вправду, так плохо объясняю задачу?
В стандартном файле библиотеки - stdio.h, задаются функции scanf(), printf(). Я хочу создать копию данного файла и добавить в него, допустим функцию scanf_s(). В дальнейшем использовать свой файл библиотеки stdio.h, а не стандартный файл.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
12.12.2020, 19:48
А-а-а. понятно.
Меня сбаламутило слово "библиотека", которая подразумевает *.lib/dll/s/so/a и т.п.

Делаем свой H-файл вида
C
1
2
3
#include <stdio.h>
 
#include "мои_добавки_к_стд.h" /*или закинуть всё это на штатное место stdio.h - но тогда при каждой обное будем ломаться*/
Ну а в коде да, менять '<>' на ' "" '. Но многие компилеры и среды не делают разницы между ними - в Builder C++ Rio такое есть - они, "борландовцы" вообще чихают на стандарты C и C++...
1
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
12.12.2020, 19:55  [ТС]
drfaust
Вы самое главное забыли дописать, какие строки мне надо добавить конкретно, чтоб в моем файле был прописан scanf_s(). Я совсем не знаю синтакиса файла stdio.h.

Добавлено через 32 секунды
потом может еще чего то потребуется добавить
0
 Аватар для zeroalef
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
14.12.2020, 16:18
Цитата Сообщение от мама Стифлера Посмотреть сообщение
какие строки мне надо добавить конкретно,
C
1
2
3
4
5
6
7
8
9
10
/* my_stdio.h */
#ifdnef MY_STDIO_H /* имя вашего заголовка */
#define MY_STDIO_H
 
#include stdio.h
 
/* <...> заменить на ваши */
<type> scanf_s (<params>);
 
#endif /* MY_STDIO_H */
C
1
2
3
4
5
6
7
/* my_stdio.c */
 
<type>
scanf_s (<params>)
{
  /* ваша реализация scanf_s */
}
C
1
2
3
4
5
6
7
8
9
10
/* main.c*/
#include "my_stdio.h"
 
int
main(int argc, char ** argv)
{
  ...
  retval = scanf_s(...); /* вызов функции */
  ...
}
Добавлено через 6 минут
мама Стифлера, описанное выше имеет "небольшой" недостаток. Вам придется постоянно копировать файлы my_stdio.h, my_stdio.c в новые проекты. Есть еще вариант, собрать свою разделяемую/статическую библиотеку, а my_stdio.h кинуть в /usr/include. В таком случае нужно быдет просто линковать библиотеку каждый раз при сборке.
1
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
14.12.2020, 16:49  [ТС]
zeroalef, хм..спасибо. Только я не понял, что значит
Цитата Сообщение от zeroalef Посмотреть сообщение
/* <...> заменить на ваши */
Цитата Сообщение от zeroalef Посмотреть сообщение
/* ваша реализация scanf_s */
Должна быть стандартная реализация, которая прописана в файлах VS, (я даже не знаю что там прописано)
И еще, зачем создавать файл "my_stdio.c", что одного "my_stdio.h" не достаточно?

Добавлено через 2 минуты
Что то данный процесс, для меня показался слишком сложным а точнее непонятным
0
 Аватар для zeroalef
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
14.12.2020, 17:05
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Должна быть стандартная реализация, которая прописана в файлах VS
Что мешает использовать ms окружение и не пытаться почесать ухо ногой? Там все эти <funcname>_s доступны искаропки.
Цитата Сообщение от мама Стифлера Посмотреть сообщение
И еще, зачем создавать файл "my_stdio.c", что одного "my_stdio.h" не достаточно?
Функции в заголовках описывать нельзя.
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Что то данный процесс, для меня показался слишком сложным
Это M$ специфические функции. Хотя на SO пишут что опции --std=c11 должно хватить, мой вывод grep -Rn scanf_s /usr/include/ оказался пустым.
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
14.12.2020, 17:06  [ТС]
Цитата Сообщение от zeroalef Посмотреть сообщение
Что мешает использовать ms окружение и не пытаться почесать ухо ногой?
zeroalef, да я устанавливал VS, в самом начале, когда только начал изучать Си. Потом снес его, из за сложности реализации и специфичности функций, используемых только в VS. Вот подумал, может снова установить и не парится со своими библиотеками? ))
Я за год привык уже к Dev-C++, в нем не нужно создавать отдельный проект для каждого кода, и загружается моментально.
0
 Аватар для zeroalef
200 / 236 / 33
Регистрация: 29.03.2019
Сообщений: 667
14.12.2020, 17:47
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Вот подумал, может снова установить и не парится со своими библиотеками?
Дело конечно ваше. Переносимость даже posix совместимого кода часто вызывает зуд, не говоря уже о портировании ms зависимого кода. Лично я не вижу смысла в использовании secure реализаций от ms. Но если вам так уж сильно припёрло, попробуйте явно указать #include "/path/to/microsoft/stdio.h" и ключик -l/path/to/microsoft/libc.dll, хотя мне мало верятно что это сработает.

Добавлено через 48 секунд
Конечно предварительно установив всё необходимое от ms.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
14.12.2020, 19:20

Не по теме:

Ужас. Я до сих пор не могу понять прблемы....

Вроде бы и далеко "не новичок" пишет, а элементарную проблему - затыки.


Повторю вопрос:
Цитата Сообщение от drfaust Посмотреть сообщение
В какую библиотеку? Код функций самописный или выдран из готовых libc и т.п.?
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
14.12.2020, 21:20  [ТС]
Цитата Сообщение от drfaust Посмотреть сообщение
Повторю вопрос
drfaust, прошу прощения, я не правильно выразился когда писал:
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Хочу добавить в библиотеку данные функции
Имелось ввиду - Хочу добавить в заголовочный файл данные функции. Я почему то называю эти файлы библиотеками.
Ну и потом мне уже вроде как расписали кучу советов и рекомендаций. Убедили, что если мне это действительно нужно, то лучше просто установить заново VS.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
14.12.2020, 21:35
scanf_s() - лучше подобрать компилер, который поддерживает стандарт, нежели изобретать велосипед. ИМХО

И да. Что в Си, Что в Си++ хидеры - это только специфика языка - упреждающее объявление функций, типов, классов - излишества "строгой типизации"
0
656 / 409 / 76
Регистрация: 21.09.2008
Сообщений: 1,407
15.12.2020, 04:59
Цитата Сообщение от мама Стифлера Посмотреть сообщение
И еще, зачем создавать файл "my_stdio.c", что одного "my_stdio.h" не достаточно?
Файл my_stdio.h - заголовочный, в нём идут объявления (декларации) параметров структур, прототипов функций (их количество и типы передаваемых параметров, по ним компилятор строит способ передачи параметров через стек в вызываемую функцию). Файл my_stdio.с - собственно раздел реализации (имплементации, как любят выражёвываться некоторые особо продвинутые) указанных в my_stdio.h функций. Т.е. "мухи" и "котлеты" отделены друг от друга. Такой способ позволяет предоставить конечному пользователю (программисту) библиотеки в двоичном коде под определённый компилятор, не раскрывая исходники реализации, при этом описания всех структур, типов аргументов, их количество предоставляются в заголовочном файле.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2020, 04:59
Помогаю со студенческими работами здесь

Корректно ли добавлять обработчик исключений в библиотеку классов
Добрый день! У меня вопрос касающийся скорее архитектуры чем самого языка. Пишу ОРС клиент с использованием библиотеки OPCDAAUTO.dll. Для...

Ошибка времени выполнения при использовании функции scanf_s
Есть код создания библиотеки книг, это его часть. Если потребуется могу скинуть весь код, но он без комментариев void...

Как получить библиотеку типа *.tlb из COM-объекта *.exe
Здравствуйте! =) Прошу подсказку у экспертов в COM`е. Можно ли сгенерировать библиотеку типа Tratata.tlb по имеющемуся...

Как правильно добавлять функции в вектор и вызывать их?
Как правильно добавлять функции в вектор и вызывать их? Вот допустим есть вектор std::vector&lt;void (*)(int, int)&gt; vector; Он...

Как можно создать и добавить библиотеку типа API в залоченное приложение от Alcatel lucent?
Здравствуйте Уважаемые программисты! Пожалуйста, помогите, как можно создать и добавить библиотеку типа API в залоченное приложение от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru