關於一些Linux系統程式設計總結

2021-08-15 04:28:01 字數 2690 閱讀 8612

為了方便以後查閱,將一些程式設計過程中常遇到問題寫下來節省以後翻閱時間。

1)rewind,c 程式中的庫函式,功能是將檔案內部的指標重新指向乙個流的開頭。

函式名: rewind()

功 能: 將檔案內部的位置指標重新指向乙個流(資料流/檔案)的開頭

注意:不是檔案指標而是檔案內部的位置指標,隨著對檔案的讀寫檔案的位置指標(指向當前讀寫位元組)向後移動。而檔案指標是指向整個檔案,如果不重新賦值檔案指標不會改變。

rewind函式作用等同於 (void)fseek(stream, 0l, seek_set);

用 法: void rewind(file *stream);

標頭檔案: stdio.h

返回值:無

2)linux

盡量避免使用system。

1.fork乙個子程序;

2.在子程序中呼叫exec函式去執行command;

3.在父程序中呼叫wait去等待子程序結束。

對於fork失敗,system()函式返回-1。

如果exec執行成功,也即command順利執行完畢,則返回command通過exit或return返回的值。

代替system函式可以用:

標準i/o函式庫提供了popen函式,它啟動另外乙個程序去執行乙個shell命令列。

這裡我們稱呼叫popen的程序為父程序,由popen啟動的程序稱為子程序。

popen函式還建立乙個管道用於父子程序間通訊。父程序要麼從管道讀資訊,要麼向管道寫資訊,至於是讀還是寫取決於父程序呼叫popen時傳遞的引數。下在給出popen、pclose的定義:

3)提示錯誤「expected 『=』, 『,』, 『;』, 『asm』 or 『__attribute__』 before 『

原因可能是因為在宣告函式時缺少「;」

4)stat函式講解

表頭檔案:    #include

#include

定義函式:    int stat(const char *file_name, struct stat *buf);

函式說明:    通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中

返  回  值:    執行成功則返回0,失敗返回-1,錯誤**存於errno

錯誤**:

enoent                    引數file_name指定的檔案不存在

enotdir                   路徑中的目錄存在但卻非真正的目錄

eloop                      欲開啟的檔案有過多符號連線問題,上限為16符號連線

efault                     引數buf為無效指標,指向無法存在的記憶體空間

eaccess                  訪問檔案時被拒絕

enomem                   核心記憶體不足

enametoolong    引數file_name的路徑名稱太長

5)int main(int argc,char *argv);

第乙個引數argc用來存放命令列引數的個數

第二個引數argv是指標陣列,它是用來存放命令列中各個引數和命令字的字串的

這裡,argc的值和argv各元素的值都是系統自動組賦值的。

6)linux系統常用指令

whoami 確認當前使用者,例如:root許可權使用者

adduser 新增使用者,例如:adduser jerry

su 表示進入使用者,例如:su jerry(進入jerry)

sudo apt-get install openssh-server 是ssh的安裝命令

cd 到達指定路徑 ,例如:cd user/lib

pwd 顯示當前所在路徑

find 查詢某檔案所在路徑,例如: find ../ -name text

mkdir 建立檔案,例如:mkdir text

cp 檔案拷貝,例如:cp -r 1st 2nd(將檔案1st拷貝到2nd下)

vim 建立可程式設計檔案,例如:vim text.c

rm 刪除檔案,例如:rm -r text(rm filenmae -rf強制刪除,不帶問詢)

ls 列出當前目錄下檔案

關於檔案顏色代表檔案型別:藍色表示目錄檔案,綠色代表可執行檔案,紅色表示壓縮檔案,淺藍色表示鏈結檔案,灰色表示其他檔案,紅色閃爍表示鏈結檔案有問題,黃色是裝置檔案。

ls -l或ll 列出當前目錄下檔案及其詳細資訊(包括建立時間,許可權等)

tar 壓縮檔案命令,例如:tar cvf text.tar text(將text檔案壓縮成text.tar檔案) tar xvf text.tar(將text.tar檔案解壓到當前目錄)

shutdown -h now 或 init 0 關機命令

reboot 重啟電腦

chmod 更改檔案許可權,例如:chmod 777 text(許可權設定是八進位制的,分為可讀可寫可執行以及使用者範圍)

man 進入man手冊(查閱命令列運用),例如:man ls

ifconfig -a 檢視所有網絡卡(主要查詢ip位址)

ctrl + c 快捷鍵,注釋掉該行命令。

先分享這麼多,嚴格說不屬於原創,是對自己學習中遇到問題然後查閱前人經驗進行總結整理完成。

Linux系統程式設計 檔案 一

llinux作業系統是以檔案為基礎而設計的,llinux的檔案子系統主要用於管理檔案儲存空間的分配,檔案訪問許可權的維護,對檔案的各種操作。使用者可使用命令對檔案進行操作 程式設計師可以使用系統呼叫或c語言的庫函式對檔案進行操作。一般linux發行版本都含有以下目錄 bin boot linux d...

linux系統程式設計知識(一)

注 本文為 unix linux程式設計實踐指導 有關筆記。1.檔案 dev tty 與終端有關的檔案 是鍵盤和顯示器的裝置描述檔案,向這個檔案寫相當於顯示在使用者的螢幕上,讀相當於從鍵盤獲得使用者的輸入。即使程式的輸入 輸出被 重定向,程式還是可以通過這個檔案與終端交換資料。2.從unix中學習u...

Linux系統程式設計 程序(一)

目錄 一 什麼是程序 二 程序的 生老病死 三 程序相關函式 當elf格式的可執行程式被執行的時候,程式被載入到記憶體中執行,此時核心產生了乙個名為task struct 的結構體來表示與管理這個程序。其中 一般流程為 父程序呼叫fork函式,生成子程序 使用fork產生的子程序與父程序一模一樣,並...