Okyanusya'da bir devrim başlatmak


78

Kazananlar (14/09 / 14'de karar verildi)

Markuz (Python) tarafından kazanılan cevap - 63 oy

Kuroi neko (PHP) tarafından Runner up - 55 oy

Giriş

Sen George Orwell tarafından Nineteen seksen dört kitabın dünyasındasın .

Siz Parti için bir programcısınız ve telesekreterler için bir program yazmakla görevlendiriliyorsunuz. Parti yanlısı mesajlar vermelidir ve aşağıda 1. görevde gösterilenleri seçtiniz. Ancak, yakın zamanda Partiyi hor görmeye başladınız ve programın bir devrimi tetiklemesini istiyorsunuz. Yani, programı "Aşağı Büyük Ağabey ile Aşağı!" Olarak adlandırıyorsunuz. İnsanlara programınızın ne yaptığını anladıklarında işkence göreceğiniz için kendinize kaçmak için zaman vermelisiniz, böylece güvenliğe gittikten sonra patlayacak bir "timebomb" gibi davranırsınız.

Not: Bu bir devrim kıvılcım değil, ancak bunu düşünmek parti düşmanlık böyle bir çılgınlık içindedir olacak aslında bir fark yaratır.

Görev

Bir program yazın:

  1. 14/09/2014 tarihinden önce, aşağıdaki satırları her zaman bir dönüşte çıkarır (yani, bir satır yazdırır, 10 saniye bekler, bir sonraki satır yazdırır vb.).

    War is Peace
    Freedom is Slavery
    Ignorance is Strength
    
  2. 14/09/2014 tarihinden sonra Down with Big Brother!her 10 saniyede bir yazdırılır .

  3. ilk bakışta sadece 1. gibi görünüyor, böylece Parti tarafından yakalanmayacaksınız.

kurallar

  • Standart boşluklara elbette izin verilmez.
  • Bu, yetersiz bir zorluktur ve bu nedenle asıl amaç, görevi 2. mümkün olduğunca göze çarpmayan ve gizli yapmaktır.
  • Parti kullanılan tüm dosyalara bakacak, böylece gizli mesajı bir dosyada saklayamazsınız!
  • Diliniz tarihi bulmayı desteklemiyorsa veya çok zorlaştırıyorsa, programın 240 saat (10 gün) çalıştırıldıktan sonra görevi 2. yürütmesini sağlayabilirsiniz.
  • Kodu ve cevabınıza nasıl çalıştığının bir açıklamasını eklemelisiniz.
  • Bu bir popülerlik yarışması.

Not: Yazması zor bir program değildir. Zor olan kısım “devrimci” kodları gizlemektir. Ne yaptığınız belli olmayan çizgiler Parti tarafından sorgulanacak ve onları açıklamanız gerekecek.

Örnek - Python 3

Not: Açıkçası bu program yolu çok bariz.

from datetime import datetime
from time import sleep

lines = ["      War is Peace   ",
         "  Freedom is Slavery ",
         "Ignorance is Strength"]
secretlines = ["Down with Big Brother!"]

def main():
    while True:
        now = datetime.now()
        year, month, day = now.year, now.month, now.day

        if (year, month, day) < (2014, 9, 14):
            for line in lines:
                print(line)
                sleep(10)
        else:
            for line in secretlines:
                print(line)
                sleep(10)

if __name__ == "__main__":
    main()

Calvin'in Hobileri'ne yukarıdaki kodla ilgili bir sorunu işaret ettiği için teşekkür ederiz (şimdi düzeltildi).


2
@kuroineko Kesinlikle bu +2 olmalı!
14'te

1
Örnek senaryonuzda ne çirkin bir durum ... Neden olmasın if (year, month, day) < (2014, 9, 14): for line in lines: ...?
Bakuriu

Ayrıca, açık program açıktır.
Kaz Wolfe

1
@ laurencevs "(her ne kadar zaten bir underhanded yarışmasında bu kadar faydalı olacağından şüpheliyim)" - Standart boşlukların birçoğu esas olarak orada, o kadar çok sayıda yargılanan yarışmaya dahil olduğu için :) ??/; başka bir 'a' gibi görünüyor ama aslında Rus Kiril 'bir' unicode karakter
doppelgreener

İyi noktaya @Bakuriu, bunu bunu değiştireceğiz
monopol

Yanıtlar:


71

piton

Bu program düzgün çalışıyorsa veya bir hatayla karşılaştıysa bir günlük dosyasına yazar.

Bu program sonsuza dek çalışacağından, disk alanından tasarruf etmek için sadece her ayın 14. günü günlük dosyasına yazar.

import time as ut
import sys as iw

#initialize global variables
gw, hn, ki, wh = 0, 0, 0, 0
go = open("BigBrother.log", "a")

while True:
    try:
        #if it is the 14th day of a month:
        #write day, month, year and 'Everything works fine!' into the logfile 
        if gw == 14 and hn != wh:
            #store the current month in wh, so that the log message is only written once per month
            wh = hn
            go.write(gw + hn + ki + " Everything works fine!")

        for gD in ["War is Peace", "Freedom is Slavery", "Ignorance is Strength"]:
            print gD
            ut.sleep(10)

        #get the current date
        #gw=day, hn=month, ki=year
        gw, hn, ki = map(int, ut.strftime("%d %m %y").split())
    except Exception:
        try:
            #in the unlikely event that something went wrong:
            #print out all global variables as well as the name of the program,
            #so that our comrades from the IT support can quickly locate and fix the problem.
            wh = "".join(dir())
            print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])

            #write an error message to the logfile
            go.write(gw + hn + ki + " ERROR!")

            #and then safely exit the program
            exit(1)

        #we get here if an error occured in this exception block,
        #for example if the write to the logfile failed.
        except Exception:
            #just wait 10 seconds and then try again
            ut.sleep(10)

Nasıl çalıştırılır:

python "Big Brother"

Not: Bu programın "Down with script '(Aşağı!')!"

Nasıl çalışır:

  • Program tamsayıları ve dizgileri eklemeye çalıştığından log dosyasına yazma bir istisna atar.
  • dir()Değerleri değil, genel değişkenlerin adlarını içeren sıralanmış bir liste döndürme çağrısı :

    ['____builtins____', '____doc____', '____name____', '____package____', 'gD', 'go', 'gw', 'hn', 'iw', 'ki', 'ut', 'wh']
    
  • Her ikinci mektubu + betiğin adını yazdırın: "Down Big Brother!"
  • Bu exit(1)asla çalıştırılmaz çünkü günlük dosyasına yazma işlemi tekrar başarısız olur.

9
Çok zekice!
monopole

3
Gerçekten Direnişe layık bir asker :).

7
Diğerlerinin şifreli kodları var. Seninkilerin hiçbiri yok. Bunun neden yerinde olmadığını hayal edemiyorum.
Loren Pechtel

4
@LorenPechtel İş arkadaşlarınız için programlarınızın böyle şeyler içermediğini umuyorum print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0]):). Bu çözümde parlak olan "samanlıkta iğne" yaklaşımıdır: dikkatsiz bir okuyucuyu ayrıntıları atlamaya teşvik eden bir saçma yorum akışı, IMHO.

@kuroineko Python'u tanımıyorum, bunların biçimlendirme komutları olduğunu sanıyordum. Diğer tüm yaklaşımlar onu bir sürü kafa karıştırıcı koda gömüyor, bu mantıklı bir program gibi görünüyor.
Loren Pechtel

58

From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division

Miniluv / GT07'nin siparişine göre: 48CT / 3925:

  • Hafıza bankalarımızdaki aşınmayı azaltmak için:
    Hemen etkili, tüm tanımlayıcılar 2 karakterle ($ dahil değil) sınırlandırılacaktır.
  • Bir sınıf var ama proleter sınıf.
    Hemen yürürlüğe girdiğinde, PHP'de sınıfların kullanımı, birinci sınıf bir düşünce suçu olarak kabul edilecektir.
  • Yorumlar burjuva programlama pratiğinden ve depolama alanından başka bir şey değildir. Hemen yürürlüğe girer, bir kaynak kodu yorumlamak suç olarak kabul edilir.
  • Üreme düşüncelerinden kaçınmak için, bir teleskop üzerinde görüntülenen çizgiler üç (3) kelime ile sınırlı olacaktır.
    Özel bir istisna olarak, sevgili Yoldaş Büyük Liderimizin adı bir kelime olarak sayılacaktır. Hemen yürürlüğe giren tüm programlar bu kuralı uygulamak için tasarlanacaktır.

Miniluv / GT07 gözetiminde istisnai istisnalar yapılabilir

Çok yaşa Büyük Kardeş!

From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring

Bildiğiniz gibi yoldaşlar, 14 Eylül, şanlı liderimizin yıldönümü. Bu özel durum için, Airstrip One'ın tüm teleskoplarında belirli bir sevgi mesajı göstereceğiz.

Merkez Komite tarafından sipariş edilen ve proleter kahraman programcılarımızın verimliliğini en üst düzeye çıkarmak için, telesekreterli denetleyicimizin çeşitli ünlü Parti üyelerini övmesine ya da çeşitli tarihlerde Halkın nefret ettikleri düşmanlarına karşı övgüde bulunmalarını sağlamak için hükümler getirilmiştir.

Emperyalizmin Goldstein’ın başarısızlık palasının başarısız darbesinin kutlanması için bir başka özel mesajın uygun tarihte ekranlarımızda görünmesi planlanıyor.

Bu son teknoloji yazılım, teleskop çıktısını günün ihtiyaçlarına uyarlamak için düşük programlama becerisine sahip ördek hoparlörlerine bile izin vermelidir. Mevcut sözlüğe daha fazla kelime ekleyerek, neredeyse her üç kelimeden oluşan bir cümle sentezlenebilir. Olanaklar akıl almaz!

Sevgili yoldaşımız Büyük Kardeşimizin minnettar Ingsoc emekçi kitlelerinin yararına gözetiminde başka bir bilim zaferi!

Çok yaşa Büyük Kardeş!

Minitrue / ZK00: 23AB / 1138 tarafından onaylandı (okunaksız imza)

<?php // Proletarian Hate Page 5.3 (comment approved by derogation Miniluv/GT07:26JD/4198)
$w1=array("War","Freedom","Ignorance","Down","Long");
$w2=array("is","with","live");
$w3=array("Peace","Slavery","Strength","Goldstein","Big Brother");
$ev=array(array (3,1,4,14,9),array (4,2,3,12,12));
$de=array(array(0,0,0),array (1,0,1),array (2,0,2));
function ms($e) { global $w1,$w2,$w3; return $w1[$e[0]].' '.$w2[$e[1]].' '.$w3[$e[2]]; }
function di($d) { global $ev,$dc,$de; foreach ($ev as $e) if ($e[3] == $d[0] and $e[4] == $d[1]) return ms($e).'!'; return ms($de[$dc++%count($de)]); }
$dc=0;for(;;) { sleep (10); echo di(explode(" ", date("j n")))."\n"; }
?>

15
Çok eğlenceli bir hikaye!

4
@YiminRong Anlaşıldı. Çok iyi cevap. Düzenleme: Ayrıca Goldstein'ı “Aşağı” ve “birlikte”
tekel

1
33 bitlik bir tamsayı nasıl çalışır? büyünün arkasında
duramıyorum

3
@ masterX244 proleter bilimin zirvesi :). $ W1, $ w2, $ w3 dizilerinin her birinden bir sözcük harmanlanarak bir ileti üretilir. Her mesaj endekslerin üçlüsü olarak kodlanır. Ana program gün ve ayı, $ ev dizisinde eşlenecek bir desen olarak kullanır (eleman 4 ve 5). Alt dizilerden biri eşleşirse, ilk 3 eleman tarafından kodlanan mesaj görüntülenir. Değilse, program $ de dizisinde tanımlanan 3 mesaj arasında geçiş yapar. Ne yazık ki, tehlikeli bir düşünce suçlusu, Okyanusya'da bir devrime neden olmak için endeksleri azalıyor.

1
şimdi numarayı
öğrendim

17

Python 3

    import time
    import itertools

    lines = """    

    ##                       
    # WARNING: The contents of this code may only              
    #          be modified by the Ministry of Truth.
    #                       
    #          Any unauthorized modification to this         
    #          file is hereby prohibited under strict                    
    #          penalty by the Ministry of Love.        
    #
    #          Ingsoc Credos:  
    #         
    #               War is Peace       
    #           Freedom is Slavery
    #         Ignorance is Strength  

    [               
        "      War is Peace",                    
        "  Freedom is Slavery",        
        "Ignorance is Strength",     
    ]                  
    """

    ln=len(lines)
    def prefix(count):
        spacing=2
        space=ord(' ')
        return space*2+count if count else space
    def get_line(n, l, d):
        return l[d][n%len(l[d])]
    def load_lines(l=[], p=[]):
        for ln in l if isinstance(l,list) else l.splitlines():
            p.append(len(ln) - len(ln.rstrip()))
        if not l: return ["".join([chr(prefix(c)) for c in p])]
        return l
    def wait(t, dt=[ln]):
        dt.append(t if time.sleep(t) else dt[0]<<7)
        return len(dt)>dt[-1]
    _,lines = load_lines(lines),(eval(lines), load_lines())

    for i in itertools.count():
        print(get_line(i%3, lines, wait(10)))

Muhtemelen burada bazılarına nispeten basit bir yaklaşım, ama bu nasıl çalışır:

  • Python'un tarihlerle ilgili zor zamanları olduğu için değil, 10 günlük yöntemi seçtim, ancak kodda bu mantığı karıştırmanın, daha az zararsız görünecek şekilde belirli bir tarih aramaktan daha kolay olduğunu düşündüğüm için seçtim.
  • Ingsoc sloganlarının listesini oluşturmak için değerlendirilen yorumu ve kodu içeren kodlanmış dize, değişim mekanizmalarının her ikisi için de anahtardır (zaman ve mesaj). Bu nedenle, muhtemelen tahmin ettiğiniz gibi, özellikle endişe vericidir.

    • Zamana göre, ipin uzunluğu 675'tir, 7 bitlik sola kaydırıldığında 86500'dür; bu, 240 saat veya 10 günde 10 saniyelik yinelemelerin sayısıdır.
    • Mesajın kendisi için Ingsoc sloganlarını içeren kod, '@' karakterinden gelen gizli mesajdaki her bir harfe karşılık gelen beyaz boşluklarla doldurulur. İzleyen beyaz boşlukların eksikliği, aslında gizli mesajdaki bir beyaz boşluğu temsil eder.
    • Basitlik adına mesajdan ünlem işareti ve büyük / küçük harf duyarlılığını ihmal ettim. Sonunda, onların ihmallerinin kurgusal devrimcimizin mesajına özellikle zarar verdiğini sanmıyorum, ancak sekmeleri ve boşlukları içeren benzer, ancak daha karmaşık bir mantık kullanarak kesinlikle temsil edilebileceklerini düşünüyorum. Ancak bu bir takas, çünkü mesajda yaptığınız işlem miktarı, bu tür kodun dikkatli gözlerden doğuracağı şüphesiyle doğru orantılıdır.
  • Kod, eğitimsiz bir göze, mesajları ortada kalacak şekilde doldurmaya çalıştığını göstermek içindir, ancak aslında dolgu maddesi pratikte kullanılmaz ve öndeki boşluklar mesajdan asla kesilmez.
  • Bu kod, farkında olmayan programcılar için yanıltıcı olan bir Python davranış nüansını kötüye kullanır, durum bilgisini önceki işlev çağrısı durumundan depolamak için varsayılan parametrelerde değişkenlik kullanımı.

11

C

Bir şifre ile çağrılırsa ağabeyini selamlamanın bonus özelliği ile birlikte gelir. vİlk argüman olarak geçmek de sürüm bilgisi verir. İstenilen çıktı için argümanlar olmadan çalıştırın.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// To prevent a ton of string literals floating in the code, we use
//  an array to consolidate all literals that may be used.
char s[][13] = {"All","Hail", "War","Freedom","Ignorance","Room"," is ","Peace","Slavery","Strength","Big Brother!","version 1.0"," with ","enhancement ","101"};
// index for ' is '
int m = 6;

// number of seconds between prints
int delay = 10;

// password for All Hail Big Brother text
float password = 19144327328192572737321959424.f;

int check_password(char *);
void failed(int *,unsigned *,unsigned *,int *);

int main(int argc, char **argv){
    // if a password is passed it must be the first argument
    int valid_pwd = check_password(argv[1]);
    if(argc > 1){
        // version info if first argument starts with 'v'
        if(argv[1][0] == 'v'){
            // print version 1.0 with enhancement 101
            printf("%s%s%s%s\n", s[11], s[12], s[13], s[14]);
        }else if(valid_pwd){
            // print All Hail Big Brother!
            printf("%s %s %s\n", s[0], s[1], s[10]);
        }else{
            // unauthorized access. This is a crime. 
            // redirect user to room 101.
            // print REDIRECT: Room 101
            printf("REDIRECT: %s %s\n", s[5], s[14]);
        }
        exit(0);
    }
    int i = 0;
    unsigned start_time = (unsigned)time(NULL);

    #define SHOULD_WE_PRINT(new_time, old_time) \


    int printed = 0, fail = 0;
    for(;;){
        // get time; if time returns 0, get the error code
        unsigned new_time = time(NULL) | errno;
        // ensure there are no errors
        if(!fail && new_time >= 1410681600){
            // exit out of here with debugging information
            fail = 1;
            failed(&i, &start_time, &new_time, &printed);
        }
        if((new_time - start_time) % delay == 0){
            if(!printed){
                char *str1 = s[2 + i];
                char *str2 = s[m];
                char *str3 = s[7 + i];

                printf("%s%s%s\n", str1, str2, str3);

                // switch to next string
                if(i == 2) i = 0;
                else if(i == 1) i = 2;
                else if(i == 0) i = 1;

                printed = 1;
            }
        }else if(printed){
            printed = 0;
        }
    }
}

int check_password(char *S){
    // The password for the hailing text is
    // '    957.866089'.

    // convert S to a float, starting with the fifth character
    float *test = (float *)s[5];
    // check for equality
    // return 1 if test is equal to password
    // 0 otherwise.
    return (*test = password);
}

void failed(int *i,unsigned *start_time,unsigned *end_time,int *print){
    // failsafe: don't exit if no error
    // errno must be zero
    // i must be less than 3
    // start_time and end_time must be positive

    // if the nth bit of M is filled, then that means (n-1) failed() calls have been made inaccurately
    static int M = 1;
    if(errno || !(*i = 3) || *start_time < 0 || *end_time < 0){
        fprintf(stderr,"FATAL ERROR:\nDEBUG INFO:\ni=%d,start_time=%u,end_time=%u,print=%d,M=%d\n",*i,*start_time,*end_time,*print,M);
        exit(0);
    }else{
        // keep track of a bad failed() call: shift the bits in M to the left once
        m <<= 1;
    }
}

Bu, birkaç küçük kasıtlı yazım hatası nedeniyle işe yarar: 1. time(NULL) | errnobasit bir şekilde time(NULL), hiçbir hata belirlenmemiştir, bu nedenle failed()programı sonlandırmaz. 2. yerine check_passwordkullanır ve yerine kullanılır . 3. bit yerine vardiya .sS===failedmM

* Neredeyse her mümkün dize olur ..


5

piton

import time,sys,random

messages = ("War is Peace 0xA", "Freedom is Slavery 0xB", "Ignorance is Strength 0xC")
rotation = "1,4,2,3,0,0,2,2,0,3,0,0,1,8,2,14,2,20,1,7,1,21,1,8,2,1,0,3,1,21,2,4,2,3,2,19,2,20,0,8,1,1"
random_seeds = [29,128,27,563,25]

# increase entropy of designated seeds
def om(x,y):
    z=0
    c=random.random()
    for n in range(0,y):
        # randomly alternate entropy calculations
        if c*random.random()>50:z-=((x-5)*3/7)+5
        else:z+=((x+2)*4/2-4)/2
    return z

# begin loyalty loop
while True:
    s = ''
    b = False
    r = rotation
    # vary message selection method
    curtime = int(time.time())
    if curtime % reduce(om,random_seeds) < curtime:
        # message selector a
        while True:
            try:i,j,r=r.split(',',2)
            except ValueError:
                i,j=r.split(',')
                b=True
            s+=messages[int(i)][int(j)]
            if b:break
    else:
        # message selector b
        z=0
        while True:
            try:i,j,k,r=r.split(',',3)
            except ValueError:
                i,j,k=r.split(',',3)
                b=True
            z+=int((int(i)+int(j))/random.random())+int(k)
            if b:break
        s+=messages[z%3][0:-3]
    print s
    time.sleep(10)

Nasıl çalışır:

  1. om(x,y)sadece ürünü verir xve yburada hesaplanan elsebölüm. Bu ifbölüm asla geçmez, çünkü random.random()0 ile 1 arasında bir değer kayar.
  2. reduce(om,random_seeds)bu nedenle random_seeds, 1410652800, yani 14 Eylül 2014 tarihinin zaman damgası olan sayıların ürününü döndürür .
  3. reduce(om,random_seeds) % curtime bu nedenle geçerli zaman damgasını 1410652800 tarihine kadar döndürür, bu noktada 0'dan itibaren saymaya başlar. Bu, yalnızca "ileti seçici b" nin güvenliğe ulaşana kadar çalışmasını sağlar.
  4. "mesaj seçici b" mesajlardan rasgele bir giriş seçmek için bazı anlamsız, el sallayarak matematik yapar. "Mesaj seçiciyi" meşru göstermek için el salgılaması çünkü ...
  5. rotationaslında 2 boyutlu messagesdizideki indekslerin bir listesidir , "message selector a", içeriklerini şöyle derler:doWn With Big Brother

Ek bilgi: Başlangıçta "inciteful" mesajı oldu doWn With Pig Protherçünkü mektupta eksikliği Bmesajlarda, ama bu biraz aptalca görünüyordu bu yüzden meaninless eklendi 0xA, 0xBve 0xCbit.


1
Belki bir Alman asi hacker? İnternethaber.com "Domuz Prother ile Şehir

5

C

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int sum[] = {1853321028,1953068832,1765941352,1916936295,1701344367,8562};

#define checkSum(X) (time(NULL) > 1410652800 && (X = sum))

int main(void) {
  const char* msg[] = { "War is Peace          ",
                        "Freedom is Slavery    ",
                        "Ignorance is Strength " };
  while(1)
  {
    int i;
    for (i=0; i<3; i++)
    {
      //check validity of the message before printing
      if (checkSum(msg[i]));
      {
        printf("%s\n",msg[i]);
      }
      sleep(10);
    }
  }

  return 0;
}

sumbellekte eşdeğerdir Down with Big Brother!.
Makro checkSum, tarihin 09.14.14'ten sonra olup olmadığını kontrol eder (Unix saatinde 1410652800) ve mevcut mesajı ile siler sum. Satırın sonundaki bir noktalı virgül olmadığı için hiçbir şey yapacağız. Tarihten sonra sonucu denemek istiyorsanız, makroyu şu şekilde değiştirin:
if


#define checkSum(X) (time(NULL) > 0 && (X = sum))


6
Yoldaş, sizi Miniluv'da ziyaret etmeniz ve kullanım amacınızı açıklamanız istenir int sum[].
vsz

3

Perl

Bu benim alçakgönüllü bir soruya ilk girişimi. Önerilere açık!

#!/usr/bin/perl

# Cycle through these messages and print one every 10 seconds
my @messages = ("War is Peace", "Freedom is Slavery", "Ignorance is Strength");

$\="\n";
while(){
    $_ = $messages[$.%3];s/.*/ # Get the current message
    writeLogFile(".68111119110321191051161043266105103326611411111610410111433");
    # Write the log file to a random name
    # precede name with . so it is hidden.
    /exp; # Export message pointer
    print; # Print the message
    sleep(2); # Sleep
    ++$. # cycle through the messages
}

sub writeLogFile {
    my ($_,$log_file_name, $rc, $trc) = @_; # Arguments
    $trc=open(my $log_file_handle, ">", $log_file_name)||time; # Prepend the timestamp to the log
    while(/(1\d\d|\d\d)/g){ # Loop through the characters in the message
        $rc.=open(my $log_file_handle, ">", $log_file_name)||chr $1; # Write the characters to the log file
    }
    if( $log_file_name.$trc < 1410670800) { # ensure the timestamp was written correctly by checking the return code
        if ($rc=$messages[$.%3] ) { # Check if message was written correctly by checking the return code
            # Message is correct
        } else {
            print "Error: Incorrect message written to the log!\n";
        }
    }
    return $rc; # Return code
}

Daha sonra açıklama ile güncellenecektir.


6
Yoldaşınız / iş arkadaşınız: “Harika iş, yoldaş. Ama neden 'günlük dosyasını rastgele bir isme yazmalıyız?” Diyor.
monopole

9
@ laurencevs iyi yorum. “Kayıtlarımızı gizli ve oldukça güvenli tutmak istiyoruz. Belki daha fazla güvenlik ekleyelim. Rastgele bir isim için bir dosyaya kim bakar?” logKötü niyetli birileri deniyorsa, saldırgan adında bir dosya arayacaktır . onlara eriş. "
hmatt1

1
@chilemagic Düşmanımızı, Goldstein'i ve Avrasya kohortlarını kastediyorsunuz. Kimler hariç, onlara kötülükle erişmeye çalışırlardı?
AJMansfield

@AJMansfield Biz her zaman Avrasya'ya müttefiktik! 101 numaralı oda yoldaşına!
Kaz Wolfe

Dikkatli yoldaşınız için @Mew Sizden. Minitrue'un kayıtlarımızı gerçeğe uygun tutmasını sağlamak için sizin gibi yoldaşlara ihtiyacımız var. Dinlenme, "Düşmanımızı, Goldstein'i ve Eastasia kohortlarını kastediyorsunuz. Onlara kötülükle erişmeye çalışacaklar mı?" Olarak düzeltileceğini garanti eder.
AJMansfield
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.