Linux C命令編寫 my chmod的實現)

2021-10-20 19:43:36 字數 2299 閱讀 1963

在linux中我們可以用chmod命令進行修改檔案的許可權

ycl@ycl-pc:

~/desktop$ ls -l

-rwxr-xr-x 1 ycl ycl 17080

3月 221:

23 a.out

-rwxr-xr-x 1 ycl ycl 16672

3月 220:

06 my_chmod

-rwxrwxrwx 1 ycl ycl 693

3月 121:

33 my_chmod.c

----

----

--1 ycl ycl 10320

3月 121:

21 test.c

ycl@ycl-pc:

~/desktop$ chmod 777 test.c

ycl@ycl-pc:

~/desktop$ ls -l

-rwxr-xr-x 1 ycl ycl 17080

3月 221:

23 a.out

-rwxr-xr-x 1 ycl ycl 16672

3月 220:

06 my_chmod

-rwxrwxrwx 1 ycl ycl 693

3月 121:

33 my_chmod.c

-rwxrwxrwx 1 ycl ycl 10320

3月 121:

21 test.c

ycl@ycl-pc:

~/desktop$ .

/my_chmod 000 test.c

ycl@ycl-pc:

~/desktop$ ls -l

-rwxr-xr-x 1 ycl ycl 17080

3月 221:

23 a.out

-rwxr-xr-x 1 ycl ycl 16672

3月 220:

06 my_chmod

-rwxrwxrwx 1 ycl ycl 693

3月 121:

33 my_chmod.c

----

----

--1 ycl ycl 10320

3月 121:

21 test.c

#include

#include

#include

#include

intmain

(int argc,

char

**ar**)

mode =

atoi

(ar**[1]

);if(mode >

777|| mode <0)

mode_u = mode/

100;

mode_g =

(mode-mode_u*

100)/10

; mode_o = mode-mode_u*

100-mode_g*10;

mode =

(mode_u*8*

8)+(mode_g*8)

+mode_o;

path = ar**[2]

;if(chmod

(path,mode)==-

1)return0;

}

你可能在輸入./my_chmod 0 test.c時會發生一些問題

ycl@ycl-pc:

~/desktop$ .

/my_chmod 000 test.c

bash:

./my_chmod: 沒有那個檔案或目

我們編譯檔案時一般是

gcc my_chmod.c

./a.out

但在本程式中會有引數需要輸入,我們可以

.

/a.out 000 test.c

但如何使用 my_chmod 000 test.c 呢?下面告訴你

ycl@ycl-pc:

~/desktop$ gcc my_chmod.c -o my_chmod

ycl@ycl-pc:

~/desktop$ .

/my_chmod 0 test.c

有了gcc my_chmod.c -o my_chmod這一部你就可以產生乙個my_chmod檔案,就想你用./a.out時產生了乙個a.out檔案一樣

Linux C程式設計Makefile編寫初步

假設我們有下面這樣的乙個程式,源 如下 main.c include mytool1.h include mytool2.h int main int argc,char argv mytool1.h ifndef mytool 1 h define mytool 1 h void mytool1 ...

Linux c訪問mysql 編寫入門

一 前置條件 1 linux 已經安裝好 mysql 資料庫 2 linux 已經安裝了 gcc 編譯器 二 資料庫準備 為了便於描述,假設資料庫的 root 使用者密碼為 root pwd 1 以 root 使用者登陸資料庫 mysql uroot proot pwd mysql 2 建立資料 t...

linux c 動態鏈結庫so編寫

linux下的動態鏈結庫是.so檔案,即 shared object,下面是乙個簡單的例子說明如何寫.so以及程式如何動態載入.so中的函式和物件。testso.h ifndef testso h define testso h extern c endif testso h testso.cpp ...