日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

UNIX系统编程(一)

發布時間:2024/4/17 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UNIX系统编程(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看了《Linux程序設計》100來頁,不得不吐槽一下翻譯,實在沒辦法,在豆瓣上找到這本書《Unix/Linux編程實踐教程》,翻了那么幾十頁,就愛上了這本書了。

下面是一些概念性的東東:

1.計算機用操作系統來管理所有的資源,并將不同的設備和不同的程序連接起來。

2.內存空間用來存放程序和數據,所有的程序都必須在內存空間中才能運行,用來容納操作系統的內存空間叫系統空間,容納應用程序的叫做用戶空間。

3.內核(亦即OS),向程序提供服務以便程序能訪問到設備。

4.系統資源

    • 處理器
    • I/O
    • 進程管理(process management):指程序的一次運行,每個進程都有自己的資源,如內存,打開的文件和其他運行時所需的系統資源。
    • memory
    • device
    • timers
    • interprocess communication
    • networking

5.在登錄過程中,當用戶名和密碼通過驗證后,系統會啟動一個叫shell的進程,然后把用戶交給這個進程,由這個進程處理用戶的請求。

??????????????????????????????????????????????????????????????????????

6.網絡橋牌展示了UNIX系統的編程中3個重要的方面:

  • 通信:某個用戶或進程如何與其他用戶和進程交換信息?
  • 協作:在同一個時刻,網絡橋牌的兩個用戶不會去拿同一張牌,程序如何來協調多個process來使他們沒沖突地訪問共享資源?
  • 網絡訪問:計算機的程序如何使用網絡?

????????????????????

7.命令也是程序

在UNIX上面添加新的命令很容易。把程序的可執行文件放到以下任意一個目錄即可:/bin、/usr/bin、/usr/local/bin,這些目錄存在很多系統命令,UNIX一開始沒那么多命令,一些人編寫特定的程序來解決某個特定問題。而其他人也覺得這程序有用,用得多了后,就成了標準命令了。

8.從UNIX中學習UNIX:

  • 閱讀聯機幫助(如:$man who)
  • 搜索聯機幫助(如:$man –k utmp)
  • 閱讀.h文件
  • 從參閱部分得到啟示(SEE ALSO)

9.系統調用之OPEN、READ

1)open:在進程process文件file之間建立一條連接,這個連接被稱為文件描述符file descriptor,就像條由進程通向內核的管道。(大方框下面的陰影是kernel,最下面的陰影圓柱是硬盤)

???? 文件描述符:如果文件被順利打開,內核會返回一個正整數的值,此即文件描述符。打開文件會建立文件和進程之間的連接,文件描述符就是唯一標識這個連接的,若同時打開好幾個文件,他們所對應的文件描述符是不同,如果將一個文件打開多次,對應的文件描述符也不同。

??????????????????????????????????????????????

????????????????????????????????????????????????? system??? call:?????????? open
目標??????????????????????????????? 打開一個文件
頭文件??????????????????????????? #include<fcntl.h>
函數原型??????????????????????? int fd = open (char *name, int how)
參數??????????????????????????????? name:文件名????????????????????????? how :O_RDONLY,O_WRONLY或O_RDWR
返回值??????????????????????????? -1 錯誤??????????????????????????????????? int 成功返回

?

2)read

????? 在unistd.h頭文件中,原型為:ssize_t numread = read (int fd, void *buf, size_t qty)。其中fd為文件描述符,buf為用來存放數據的目的緩沖區,qty為要讀的字節數。

返回:-1,錯誤;numread,成功讀取。

轉載于:https://www.cnblogs.com/frechei/archive/2013/04/11/3015675.html

總結

以上是生活随笔為你收集整理的UNIX系统编程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。