Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Bredorub
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
#1

Есть ли способ просмотреть код библиотечных функций? - C++

24.02.2012, 22:48. Просмотров 1647. Ответов 11
Метки нет (Все метки)

Жутко хочется посмотреть, как устроена, скажем, функция gotoxy из conio.h. Но в заголовочном файле бесконечные отсылки к разным файлам и какая-то малопонятная несусветная околесица, разбираться в которой было бы для меня непосильной задачей. И вообще, если я не ошибаюсь, библиотечные функции изначально скомпилированы в готовые файлы. Но если судить по логике вещей, раз что-то можно скомпилировать, то почему же должна отсутствовать возможность "раскомпилировать" это? Ну или хотя бы просто посмотреть где-то еще... Кто-нибудь из присутствующих знает, как получить исходный код из библиотечных файлов? Или где-нибудь каталог библиотечных функций с их кодом есть?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 22:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли способ просмотреть код библиотечных функций? (C++):

Не применяя библиотечных функций, напишите код функции - C++
Не применяя библиотечных функций, напишите код функции для вычисления чисел типа int и double в целую степень n. Напишите программу, в...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Использование библиотечных функций string.h - C++
Задание 3. Использование библиотечных функций string.h 1. Даны текстовая строка и слово (например, ba). Напечатать все слова, входящие в...

БЕЗ использования библиотечных функций - C++
Помогите написать программу... Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы...

Работа со строкой без библиотечных функций - C++
Дана строка типа "abc xyz dea" На выходе расположить слова в алфавитном порядке первых букв, т.е. "abc dea xyz" Не могу раскрутить...

Строки и использование библиотечных функций для их обработки - C++
Нужно решить на Си. Напечатать слова, входящие в предложение, в алфавитном порядке.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.02.2012, 22:50 #2
Цитата Сообщение от Bredorub Посмотреть сообщение
Но если судить по логике вещей, раз что-то можно скомпилировать, то почему же должна отсутствовать возможность "раскомпилировать" это?
если судить по этой логике, то если можно получить md5 хеш из файла, то почему нельзя получить файл из md5 хеша?

из скомпилированной библиотеки осмысленного кода не получить
если она написана не на c# или java
Nick Alte
Эксперт С++
1636 / 1008 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
24.02.2012, 22:55 #3
Многие среды разработки (Microsoft Visual Studio в том числе) поставляются с исходным кодом стандартных библиотек.
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
24.02.2012, 23:09 #4
Цитата Сообщение от Bredorub Посмотреть сообщение
Ну или хотя бы просто посмотреть где-то еще...
Есть на самом деле очень даже рабочий способ, рецепт прост как двери: попросить в Microsoft-а
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
24.02.2012, 23:36 #5
Думаю что Страуструп должен знать, как они реализуются, может ему написать. А если серьезно думаю в литературе можно найти ответ
Bredorub
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
25.02.2012, 06:34  [ТС] #6
Цитата Сообщение от alex_x_x Посмотреть сообщение
сли судить по этой логике, то если можно получить md5 хеш из файла, то почему нельзя получить файл из md5 хеша?
быть может, просто никто пока над такой возможностью всерьез не задумывался?..
Kastaneda
25.02.2012, 08:14
  #7

Не по теме:

Цитата Сообщение от Bredorub Посмотреть сообщение
быть может, просто никто пока над такой возможностью всерьез не задумывался?..
Когда-то понадобилось разобрать с md5, много читал по этой теме, в общем несколько лет назад какой-то японский ученый восстановил таки данные по md5 хешу, на это у него ушло 2 года!

По поводу сабжа - есть способ! Пишешь письмо в битву экстрасенсов, придумываешь слезную причину, почему тебе просто необходимо узнать как реализованы закрытые библиотеки, к тебе приезжают несколько человек с бубнами и свечками и, войдя в транс, продиктуют исходный код на С.

diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.02.2012, 08:27 #8
Цитата Сообщение от alex_x_x Посмотреть сообщение
если судить по этой логике, то если можно получить md5 хеш из файла, то почему нельзя получить файл из md5 хеша?

Не по теме:

с хабра

Mezomish:
Вот пароль от архива с секретной перепиской Новодворской, Ким Чен Ира и Чака Норриса с планами захвата власти в России и США и присоединения их к Северной Корее в качестве Восточной и Западной провинций:

XfrYjhhbcDct[Gj,tlbn

Я требую 10 миллионов долларов и самолёт до Гондураса, иначе выложу сам архив

spiritedflow:
Сейчас я брутфорсом подберу архив под ваш пароль...
(с) баш

silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.02.2012, 17:24 #9
 Комментарий модератора 
2All: заканчиваем оффтоп!


Цитата Сообщение от Bredorub Посмотреть сообщение
быть может, просто никто пока над такой возможностью всерьез не задумывался?..
Ой, да не смешите.
Стандартная библиотека С - проект с открытым исходным кодом. Гуглите glibc - и будьте счастливы.
Кстати, conio.h никакого отношения к стандартной библиотеке не имеет.
Bredorub
5 / 5 / 0
Регистрация: 16.01.2011
Сообщений: 94
25.02.2012, 21:27  [ТС] #10
Цитата Сообщение от silent_1991 Посмотреть сообщение
conio.h никакого отношения к стандартной библиотеке не имеет
А к чему имеет?
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.02.2012, 21:33 #11
Bredorub, очевидно, к нестандартным разработкам.
http://ru.wikipedia.org/wiki/Conio.h
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 22:04 #12
в винде большинство функций сводятся к вызову winapi-функций. Если просмотреть дизассемблированный код, то это видно.
Т.е., например, gotoxy(10,10) сводится к
C++
1
2
3
4
5
6
7
8
#include "windows.h"
 
....
        _COORD C;
        C.X = 10;
        C.Y = 10;
        HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
        if (h) SetConsoleCursorPosition(h,C);
Код SetConsoleCursorPosition (из kernel32.dll) можно просмотреть только дизассемблированный.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 22:04
Привет! Вот еще темы с ответами:

Напишите варианты библиотечных функций strncpy, strncat и strncmp - C++
вот такая задача, Напишите варианты библиотечных функций strncpy, strncat и strncmp, которые оперируют с первыми символами своих...

Записать тригонометрические выражения посредством библиотечных функций и вычислить их - C++
Нужно написать программу, в которой пользователь вводит альфа(alpha), а программа бы считывала и выводила z1 и z2 z1=cos в квадрате от...

Найти количество слов в строке с использованием библиотечных функций string.h - C++
Найти количество слов в строке с использованием библиотечных функций string.h на языке С. Помогите Не дублируйте темы!

Код стандартных библиотечных фунций - C++
Подскажите, пожалуйста, где можно посмотреть исходный код функций стандартных библиотек, например, math.h, string.h? Не интерфейс функций,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.02.2012, 22:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru