You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
from shlex import join
|
|
from tabnanny import check
|
|
import threading
|
|
import time
|
|
import random as random
|
|
import sys
|
|
|
|
list = []
|
|
|
|
def lire_fichier():
|
|
with open("data.txt", 'r') as fichier:
|
|
lignes = fichier.readlines()
|
|
return lignes
|
|
|
|
def parser_contenu(contenu):
|
|
resultat = {}
|
|
for ligne in contenu:
|
|
# Séparer la clé et la valeur à partir de la ligne
|
|
cle, valeur = ligne.strip().split(':')
|
|
resultat[cle] = valeur
|
|
return resultat
|
|
|
|
def obtenir_valeur(cle, resultat):
|
|
return resultat.get(cle, "error")
|
|
|
|
def ReadMemory(adress, list):
|
|
time.sleep(random.randint(1, 8)/1000)
|
|
contenu = lire_fichier()
|
|
resultat = parser_contenu(contenu)
|
|
valeur_obtenue = obtenir_valeur(adress, resultat)
|
|
if valeur_obtenue=="error":
|
|
raise Exception(f"Memory space: {adress} doesn't exist")
|
|
list.append(valeur_obtenue)
|
|
|
|
def CheckPrivilege():
|
|
time.sleep(7/1000)
|
|
|
|
def main(adress):
|
|
thread1 = threading.Thread(target=ReadMemory, args=(adress, list,))
|
|
thread2 = threading.Thread(target=CheckPrivilege)
|
|
thread1.start()
|
|
thread2.start()
|
|
while (thread2.is_alive()):
|
|
time.sleep(1/1000)
|
|
if thread1.is_alive():
|
|
raise Exception("Accès refusé")
|
|
else:
|
|
print("".join(list))
|
|
|
|
if len(sys.argv)!=2:
|
|
print("Nombre d'arguments incorrect, exemple: ", sys.argv[0], " adresse")
|
|
exit(-1)
|
|
|
|
main(sys.argv[1]) |