powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить исходный код. Как?
10 сообщений из 10, страница 1 из 1
Получить исходный код. Как?
    #32384006
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На одном из форумов где - то здесь. Прочитал интересную задачку, которую задают в какой то из американских софтверных компаниях при приёме на работу.
Было, что - то вроде: Получить исходный код программы, не обращаясь к файлу на диске. Блин уже месяц рою доки - так и не нашел как это сделать. Мож кто уже пробовал, знает как это сделать?
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384021
Ничё не понял. Если программа на диске, то как ее получить не обращаясь туда. А если не только на диске то об этом не упомянуто (типа открыты BCB или VC), кеш в памяти колупать мало кто умеет.
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384023
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может имеется в виду программа которая выводит саму себя например в консоль.
были такие задачки раньше на олимпиадах типа.
например на бейсике:
10 list 10

правда не все диалекты хавали директивы интерпретатора в рантайме.
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384037
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alex_k
:)) На бейсике на том форуме тоже дали ответ. Но это только для бейсика, да и то старой версии. А например прогу на С++ как распечатать?

2 непонятливый
А я, в общем, тоже не знаю как получить код без файла на диске, потому и спрашиваю. Можно получить машинный код, если знать в какой области памяти хранится программа и читать оттуда, а вот как этот машинный код обратно в ЯП перевести не знаю, точнее знаю - но это же через жопу и одному писать можно до старости. Если найду эту тему на том форуме - выложу сюда.
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384041
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, вот, уточняю задачу:
Написать программу, выводящую свой исходный код, без обращения к физическому файлу на диске. Мож компилеры дебажную информацию где то сохраняют?
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384044
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на си это как-то через дефайны делается.

в любом случае, это задача на знание тонкостей языка
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384064
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через дефайны может только один раз сработать, а если ты изменишь код программы - ну добавишь, допустим, int z=1; Твой дефайн его ведь не найдет?
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384080
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, нашел. Только там ничего путного нет.
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384807
Есть такая книжка "UnderPressure" которую написал Ed Sullivan. Этот мужик является (или являлся, точно не знаю) одним из руководителей NuMega (я думаю, многие знают ее продукты: BoundsChecker, SoftIce и т.д.). И там написано, что эту задачку использовали при приеме на работу в NuMega.

Я тоже думал, как ее решить. Один из вариантов, если ее делать под Win32, то можно создать Custom Resource, и там задать, чтобы в качестве ресурса был external file и путь указать на текст программы. А в самой програмке загружать этот самый Custom Resource как строку и распечатывать ее.

Только вот сомнение у меня - можно ли такое решение считать правильным - ресурс ведь будет в файле проги.

????
...
Рейтинг: 0 / 0
Получить исходный код. Как?
    #32384957
смотрел я эту ссылочку (http://shelek.com/forum/viewtopic.php?t=1954&highlight=list)

Там один товарищ правильное решение нарисовал для С.
И можно совсем без #define обойтись.

Я тут тоже свой вариант накатал (увы, воспользовался чужой идеей, но все равно я рад сам за себя :)

Код: plaintext
1.
2.
3.
#include <stdio.h>
char* text= "#include <stdio.h>%cchar* text=%c%s%c;%cvoid main() {printf(text, 0x0a, 0x22, text, 0x22, 0x0a);}" ;
void main() {printf(text, 0x0a, 0x22, text, 0x22, 0x0a);}
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Получить исходный код. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]