proc = `ps aux`
puts $? puts $?.exitstatus = 0
Sans parler de droits, chaque fichiers n'est pas toujours lisible par tous. Il existe trois type d’accès :
f = File.new("fichier.txt") # Lecture d'un fichier à accès exclusif f.flock(File::LOCK_EX) # Lecture d'un fichier à accès partagé #f.flock(File::LOCK_SH) #... # On libère le vérrou : f.flock(File::LOCK_UN) f.close
De la classe File::Stat on peut obtenir :
puts File.stat(”gros_fichier.txt”).size
Il est possible de changer le comportement d'un programme dès qu'il reçoit un signal par exemple.
signal.trap(3) { puts "J'ai reçu le signal SIGQUIT" }
Lors qu'il s'agit d'en envoyer :
pid = fork do Signal.trap("HUP") { puts "Ouch!"; exit } end Process.kill("HUP", pid) Process.wait
fork do puts "fils #{Process.pid}" end puts "Père #{Process.pid}" # On attend la fin d'un processus avec : Process.wait
#!/usr/bin/ruby -w 1.upto(4) do |i| if fork != nil puts ”pid = #{Process.pid}, ppid = #{Process.ppid}, i = #{i}” end end