WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

freien Speicherplatz mit 0 en beschreiben

 

Thomas_74
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 16:07     Titel: freien Speicherplatz mit 0 en beschreiben
  Antworten mit Zitat      
Hi,

ich möchte mit MATLAB den freien Speicherplatz meines USB Sticks mit 0en überschreiben geht das?
Wen ja hat jemand eine Idee wie?

Ich möchte mit dd ein image von dem Stick anlegen und um es besser komprimiren zu können sollte der freie Bereich einheitlich 0 sein.

Die Tools die sicher löschen hinterlassen immer nur Zufallszahlen, was beim komprimieren ja nicht hilft.

MfG Thomas
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.12.2012, 19:06     Titel: Re: freien Speicherplatz mit 0 en beschreiben
  Antworten mit Zitat      
Hallo Thomas_74,

Das geht sehr einfach:
Code:
file = 'G:\test';
fid = fopen(file);
if fid == -1, error('Cannot open file'); end
data = uint64(0);  % Oder: zeros(1, 1000, 'uint64');

count = 1
while count == 1
  count = fwrite(fid, data, 'uint64');  % Blocks of 8 bytes
end
count = 1;
while count == 1
  count = fwrite(fid, 0, 'uint8');
end
fclose(fid);
delete(file);
 

Ich rate mal, dass das Schreiben eines UINT64 schneller geht als mit einzelnen Bytes. Das könnte aber auch falsch sein. Vielleicht ist auch das Schreiben von größeren Blöcken sinnvoll.

Ich würde es eher mit SDelete machen: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx. Wenn Du aber sowieso mit DD arbeitest, wäre auch dies eine Idee:
Code:
dd if=/dev/null of=/directory/filename

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas_74
Themenstarter

Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.12.2012, 12:14     Titel:
  Antworten mit Zitat      
Hmm,

ich bin wohl nicht so fit mit den fid Befehlen.

bei mir kommt da die Fehlermeldung:
"Cannot open File" (für Zeile 3)

wobei mir nicht klar ist wofür Zeile 3 benutzt wird? Embarassed Embarassed

MfG Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.12.2012, 11:35     Titel:
  Antworten mit Zitat      
Hallo Thomas,

Um mit diesen Befehlen fit zu werden, ist das Lesen der Dokumentation nützlich, oder sogar eine Voraussetzung. In "help fopen" und "doc fopen" werden alle Aspekte umfassend erklärt.

Die Zeile 3 ("if fid == -1, ...") ist erforderlich um zu Testen, ob das Öffnen des Files erfolgreich war. In Deinem Fall ist es gescheitert, was daran liegt, dass das File im angegebenen Ordner nicht existiert.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas_74
Themenstarter

Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 06.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2012, 16:39     Titel:
  Antworten mit Zitat      
Hi,

habs gefunden mit:
Code:
fid=fopen(file,'w')


funktioniert es.

Hat jemand schon mal ausprobiert wie man (vielleicht parallel, oder erst große Arrays mit 0en...) am schnellsten auf die Platte/USB Stick schreibt?
Gibt es da eine Möglichkeit da sinvoll vorzugehen? Oder muss da alles mit tic toc ausprobiert werden?

MfG Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.