2015-10-29 17 views
5

Zainspirowany tym wyzwaniem PCG: https://codegolf.stackexchange.com/q/61836/31033 Pytałem sam siebie, czy można próbować pozostawić jak najmniejszą liczbę śladów przy kompilacji tego rodzaju narzędzia (bez względu na przeglądarkę lub coś innego), czy jest jakiś sposób (wymierzony w gcc/clang, ponieważ to prawdopodobnie preinstalowane kompilatory poleceń w tak działającym środowisku), aby przekazać kod źródłowy do kompilatora jako argument linii poleceń lub równy mechanizm, bez potrzeby kodu źródłowego jest zapisywany jako plik * .c, jak zwykle robiłby użytkownik?Kompilowanie kodu C bez zapisania go w pliku

(oczywiście kompilator będzie produkować pliki tymczasowe podczas kompilacji, ale te prawdopodobnie nie zostaną zeskanowane.)

+0

Wel Mogę napisać skrypt, który zapisuje twój kod źródłowy, kompiluje go, a następnie usuwa. – Arc676

+0

Dlaczego głosowanie jest bliskie i zbyt szerokie? Jest to dość konkretne pytanie z zaledwie 2 opcjami odpowiedzi. 1) Nie jest to niemożliwe z jednym z nich lub 2) Tak, działa z gcc/clang/both, z poleceniem o nazwie ... – dhein

+0

@ Arc676: Tak, ale to spowoduje, że plik, który może być zeskanowany lub pozostawiając ślad ujawniający moje niepożądane zachowanie. – dhein

Odpowiedz

6

Przynajmniej gcc może, jak to jest w stanie odczytać źródło ze standardowego wejścia. Można również użyć Unix tutaj budowę ciąg bash:

gcc -xc - << "int main() { exit(0); }" 

lub tutaj budowę plik sh:

gcc -xc - <<MARK 
int main() { 
    exit(0); 
} 
MARK 

---- EDIT ----

Można również wyobrazić sobie, aby za pomocą kryptografii zakodować swoje źródło, rozpakować zawartość w locie i wprowadzić wynik do standardowego wejścia gcc, coś takiego:

uncipher myfile.protected | gcc -xc - 
Powiązane problemy