Programlama | Programlama Dilleri | C Programlama Dili |C++



Unix Sistem Ça?r?lar? (Unix System Calls)

Haskell programlama dilinde yaz?lm?? bu fonksiyonda unix sistem ça?r?lar?n? (Unix System Calls) yapabilen bir uygulama yap?lm??t?r. Unix'te varolan ls fonksiyonunu,cp fonksiyonunu, cat fonksiyonunu, mv fonksiyonunu, rm fonksiyonunu, wc fonksiyonunu, cd fonksiyonunu gerçekleyen tam bir program yaz?lm??t?r.

 Ör Komutlar:

ls

$ > ls C:

$ > cp dene.hs C:\\celal.txt

$ > cat dene.hs

$>mv C:\\celal.txt D:\\celal.txt

$>rm  D:\\dene

$>wc D:\\dene.hs

$>cd C:

Program Kodu :

  1.  
  2. import System.IO
  3. import System.Directory
  4.  
  5. unixcall =
  6.            getContents >>= \ satirlar ->
  7.            calistir (lines satirlar)
  8.           
  9. calistir (b:bs) =
  10.                   fonk ([a |a <-words b]) >>
  11.                   putStr "$>" >>
  12.                   calistir bs
  13.  
  14. fonk (l:[])
  15.             | l=="ls"   = getCurrentDirectory >>= \dir ->
  16.                dirlist dir
  17.  
  18. fonk (l:ls)
  19.              | l=="ls"    = dirlist (head ls)
  20.              | l=="cp"    = kopyala (head ls) (head (tail ls))
  21.              | l=="cat"   = icerikgoster (head ls)
  22.              | l=="mv"    = dosyagit(head ls) (head (tail ls))
  23.              | l=="rm"    = klasorsil(head ls)
  24.              | l=="wc"    = karaktersay (head ls)
  25.              | l=="cd"    = dizinsec (head ls)
  26.  
  27.  
  28.              
  29. dirlist a =
  30.            getCurrentDirectory >>= \dir  ->
  31.            getDirectoryContents a >>= \filelist ->
  32.            setCurrentDirectory a >>
  33.            dosyalariekranayazdir filelist >>
  34.            setCurrentDirectory dir >>
  35.            return ()
  36.                     
  37. dosyalariekranayazdir (l:[]) = putStrLn l
  38. dosyalariekranayazdir (l:ls) =
  39.                                putStrLn l >>
  40.                                dosyalariekranayazdir ls
  41.  
  42.  
  43. kopyala a b =
  44.              openFile a ReadMode >>= \acilacak ->
  45.              openFile b WriteMode >>= \yazilacak ->
  46.              hGetContents acilacak >>= \icerik ->
  47.              hPutStr yazilacak icerik >>
  48.              hClose acilacak >>
  49.              hClose yazilacak
  50.  
  51. icerikgoster a=
  52.                openFile a ReadMode >>= \acilacak ->
  53.                hGetContents acilacak >>= \icerik ->
  54.                putStr icerik
  55.  
  56. dosyagit a b=
  57.               openFile a ReadMode >>= \acilacak ->
  58.               openFile b WriteMode >>= \yazilacak ->
  59.               hGetContents acilacak >>= \icerik ->
  60.               hPutStr yazilacak icerik >>
  61.               removeFile a
  62.              
  63. klasorsil a= removeDirectory a
  64.  
  65. karaktersay a=
  66.                openFile a ReadMode >>= \acilacak ->
  67.                hGetContents acilacak >>= \icerik ->
  68.                putStrLn ("Karakter Sayisi: "++(show(length icerik))) >>
  69.                putStrLn ("Kelime Sayisi: "++(show(length(words icerik)))) >>
  70.                putStrLn ("Satir Sayisi: "++(show(length(lines icerik))))
  71.            
  72.               
  73.  
  74. dizinsec a=  setCurrentDirectory a
  75.  
 

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
 
404 Not Found

Server Error

404

Page Not Found

This page either doesn't exist, or it moved somewhere else.


That's what you can do