導航:首頁 > 文件類型 > linuxc刪除文件函數

linuxc刪除文件函數

發布時間:2023-05-15 20:10:50

linux命令刪除非空目錄

linux命令刪除非空目錄:
rm -rf 目錄名
解釋:
1、r意思是刪除目錄,f意思是force的縮寫,強制刪除,不提示。
2、如果目錄為空,可以用 「rmdir 目錄名」刪除。

3、如果目錄不為空,可以用「rm -r 目錄名」刪除。

Ⅱ Linux C中的Socket,shutdown函數和close函數有什麼不同

假設server和client 已經建立了連接,server調用了close, 發送FIN 段給client(其實不一定會發送FIN段,後面再說),此時server不能再通過
socket發送和接收數據,此時client調用read,如果接收到FIN 段會返回0,但client此時還是可以write 給server的,write調用只負責把數據交給TCP
發送緩沖區就可以成功返回了,所以不會出錯,而server收到數據後應答一個RST段,表示伺服器已經不能接收數據,連接重置,client收到RST段後無
法立刻通知應用層,只把這個狀態保存在TCP協議層。如果client再次調用攔枝跡write發數據給server,由於TCP協議層已經處於RST狀態了,因此不會將數據
發出,而是發一個SIGPIPE信號給應用層,SIGPIPE信號的預設處理動作是終止程序
有時候代碼中需要連續多次調用write,可能還來不及調用read得知對方已關閉了連接就被SIGPIPE信號終止掉了,這就需要在初始化時調用sigaction處
理SIGPIPE信號,對於這個信號的處理我們通常忽略即可,signal(SIGPIPE, SIG_IGN); 如果SIGPIPE信號沒有導致進程異常退出,write返回-1並且
errno為EPIPE。
#include <unistd.h>
intclose(int fd);
close 關閉了自身數據傳輸的兩個方向。
#include <sys/socket.h>
intshutdown(int sockfd, int how);
shutdown 可以選擇關閉某個方向或者同時關閉兩個方向,shutdownhow = 1 or how = 2 (SHUT_WR or SHUT_RDWR),可以保證對等方接收到一個EOF字元(即發送了一個FIN段),而不管其他進程是否已經打開了這個套接字。而close不能保證,只有當某個sockfd的引用計數為0,close 才會發送FIN段,否則只是將引用計數減1而已。也就是說只有當所有進程(可能fork多個子進程都打開了這個套接字)都關閉了這個套接字,close 才會發送FIN段。
所以說,如果是調用shutdown how = 1 ,則意味著往一個已經接收FIN的套接字中寫是簡並允許的,接收到FIN段僅代表對方不再發送數據,但對方還是可以讀取數據的,可以讓對方可以繼續讀取緩沖區剩餘的數據。
下面使用shutdown 修改客戶端程序,在前面講過的使用select函數修改後的客戶端程序基礎上,修改很小一部分:
C++ Code
if (FD_ISSET(fd_stdin, &rset))
{
if (fgets(sendbuf, sizeof(sendbuf), stdin)== NULL)
{
stdineof = 1; //表示已經輸入完畢
/* 關閉sock的寫端,還能夠接收數據,在sock的緩沖區末尾添加一個FIN段 */
shutdown(sock, SHUT_WR);
}
else
{
writen(sock, sendbuf, strlen(sendbuf));
memset(sendbuf, 0, sizeof(sendbuf));
}
}
為了測試我們想要的效果,需要在select函數修改後的伺服器端程序的 134 行代碼之後,即writen 之前 sleep(4); 目的是接收到客戶端數據後搭帶不馬
上回射回去,睡眠4s 後在客戶端已經關閉連接的情況下再發送數據。
先運行伺服器端程序,再運行客戶端程序,在客戶端標准輸入,迅速敲入兩行:AAAAA\n BBBBB\n 然後按下ctrl+d 即fgets 會返回NULL,然後調用
shutdown關閉寫端,雖然伺服器端延時才發送數據,此時客戶端寫端已經關閉,但還是可以讀取到回射回來的數據,伺服器端最後得到一個FIN段,read
返回0,列印輸出 client close ,並且close(conn); 而客戶端在讀取服務端回射回來的兩次數據後,再次read 也返回0,故列印 server connect
close,break退出循環,進程順利退出。從下面的輸出還可以看出,因為延時的關系,所以不像以前那樣發射一行就回射一行。
simba@ubuntu:~/Documents/code/linux_programming/UNP/socket$./echoser_select
recv connect ip=127.0.0.1 port=54010
fdsgfgd
gfedg
client close
...........................
simba@ubuntu:~/Documents/code/linux_programming/UNP/socket$./echocli_select_shutdown
local ip=127.0.0.1 port=54010
fdsgfgd
gfedg
fdsgfgd
gfedg
1
gfedg
server connect close
如果我們將客戶端程序中的shutdown 改成了 close,那麼當延時後伺服器端發送數據給客戶端時,客戶端的讀端和寫端都已經關閉,第一次發AAAAA會
返回一個RST段,根據本文前面所說,再次發BBBBB直接產生SIGPIPE信號,默認會終止進程,但因為我們已經設置了忽略SIGPIPE信號,所以伺服器端進
程不會被終止,但客戶端也會出錯,因為回到while循環開頭,select阻塞等待時發現套接字的讀端已經關閉,所以不能再關心可讀事件了,select會返
回-1,錯誤碼是 EBADF: Bad File Descriptor。

Ⅲ C語言remove()怎麼刪除絕對路徑的文件

remove()函數用於刪除指定的文件。


函數原型:int remove(char *
filename);
參 數:filename為要刪除的文件名,可以為一目錄。如果參數filename
為一文件,則調用喊稿汪unlink()處理;若參數filename
為一目錄,則調用rmdir()來處理。
返 回 值:成功則返回0,失敗則返回-1。


舉例如下:

#include<stdio.h>
intmain()
{
charfilename[80];//存敬粗放路徑及文件名的數組
printf("Thefiletodelete:");
gets(filename);//獲取用戶輸入的文件路徑與文件名
if(remove(filename)==0)//調用remove函數刪除鄭仔指定文件
printf("Removed%s.",filename);
else
printf("Failtoremoved%s.",filename);
}

Ⅳ linux下shell編程 在終端輸入ctrl-c後 執行刪除臨時文件再退出

在腳滲明本中加入

trap "rm -f /path/to/your/file" EXIT

則,不管你的腳本知喊族是因為什麼原因 (ctrl-c 或者其搭弊他方式)退出,都會在退出前刪除那個文件。

Ⅳ 關於LINUX最基本的一些命令

Linux運維人員必會的120個命令
跟老男孩學Linux運維:核心系統命令實戰
前言
第1章 Linux命令行簡介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令幫助 / 4
1.3Linux shutdown reboot halt / 9
關機:
shutdown -h now
halt
init 0

第2章 文件和目錄操作命令 / 13
2.1pwd:顯示當前所在的位置 / 13
2.2cd:切換目錄 / 16
2.3tree:以樹形結構顯示目錄下的內容 / 18
2.4mkdir:創建目錄 / 22
2.5touch:創建空文件或改變文件的時間戳屬性 / 27
2.6ls:顯示目錄下的內容及相關屬性信息 / 30
2.7cp:復制文件或目錄 / 39
2.8mv:移動或重命名文件 / 42
2.9rm:刪除文件或目錄 / 45
2.10rmdir:刪除空目錄 / 48
2.11ln:硬鏈接與軟鏈接 / 49
2.12readlink:查看符號鏈接文件的內容 / 54
2.13find:查找目錄下的文件 / 55
2.14xargs:將標准輸入轉換成命令行參數 / 68
2.15rename:重命名文件 / 71
2.16basename:顯示文件名或目錄名 / 72
2.17dirname:顯示文件或目錄路徑 / 72
2.18chattr:改變文件的擴展屬性 / 73
2.19lsattr:查看文件擴展屬性 / 75
2.20file:顯示文件的類型 / 76
2.21md5sum:計算和校驗文件的MD5值 / 77
2.22chown:改變文件或目錄的用戶和用戶組 / 80
2.23chmod:改變文件或目錄許可權 / 81
2.24chgrp:更改文件用戶組 / 85
2.25umask:顯示或設置許可權掩碼 / 86
2.26老男孩從新手成為技術大牛的心法 / 90
第3章 文件過濾及內容編輯處理命令 / 91
3.1cat:合並文件或查看文件內容 / 91
3.2tac:反向顯示文件內容 / 103
3.3more:分頁顯示文件內容 / 104
3.4less:分頁顯示文件內容 / 107
3.5head:顯示文件內容頭部 / 109
3.6tail:顯示文件內容尾部 / 111
3.7tailf:跟蹤日誌文件 / 114
3.8cut:從文本中提取一段文字並輸出 / 115
3.9split:分割文件 / 117
3.10paste:合並文件 / 118
3.11sort:文本排序 / 123
3.12join:按兩個文件的相同欄位合並 / 127
3.13uniq:去除重復行 / 129
3.14wc:統計文件的行數、單詞數或位元組數 / 131
3.15iconv:轉換文件的編碼格式 / 133
3.16dos2unix:將DOS格式文件轉換成UNIX格式 / 134
3.17diff:比較兩個文件的不同 / 135
3.18vimdiff:可視化比較工具 / 138
3.19rev:反向輸出文件內容 / 139
3.20tr:替換或刪除字元 / 140
3.21od:按不同進制顯示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:純文本編輯器 / 147
3.24老男孩逆襲思想:做Linux運維的多個好處 / 152
第4章 文本處理三劍客 / 153
4.1grep:文本過濾工具 / 153
4.2sed:字元流編輯器 / 159
4.3awk基礎入門 / 165
第5章 Linux信息顯示與搜索文件命令 / 176
5.1uname:顯示系統信息 / 176
5.2hostname:顯示或設置系統的主機名 / 178

5.3dmesg:系統啟動異常診斷 / 179
5.4stat:顯示文件或文件系統狀態 / 181
5.5:統計磁碟空間使用情況 / 183
5.6date:顯示與設置系統時間 / 186
5.7echo:顯示一行文本 / 190
5.8watch:監視命令執行情況 / 193
5.9which:顯示命令的全路徑 / 195
5.10whereis:顯示命令及其相關文件全路徑 / 196
5.11locate:快速定位文件路徑 / 197
5.12updatedb:更新mlocate資料庫 / 199
5.13老男孩逆襲思想:新手在工作中如何問問題不會被鄙視 / 200
第6章 文件備份與壓縮命令 / 201
6.1tar:打包備份 / 201
6.2gzip:壓縮或解壓文件 / 208
6.3zip:打包和壓縮文件 / 211
6.4unzip:解壓zip文件 / 212
6.5scp:遠程文件復制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆襲思想:新手如何高效地提問 / 220
第7章 Linux用戶管理及用戶信息查詢命令 / 222
7.1 useradd:創建用戶 / 222
7.2usermod:修改用戶信息 / 227
7.3userdel:刪除用戶 / 229
7.4groupadd:創建新的用戶組 / 230
7.5groupdel:刪除用戶組 / 231
7.6passwd:修改用戶密碼 / 232
7.7chage:修改用戶密碼有效期 / 237
7.8chpasswd:批量更新用戶密碼 / 238
7.9su:切換用戶 / 240
7.10visudo:編輯sudoers文件 / 242
7.11sudo:以另一個用戶身份執行命令 / 244
7.12id:顯示用戶與用戶組的信息 / 248
7.13w:顯示已登錄用戶信息 / 249
7.14who:顯示已登錄用戶信息 / 250
7.15users:顯示已登錄用戶 / 252
7.16whoami:顯示當前登錄的用戶名 / 253
7.17last:顯示用戶登錄列表 / 253
7.18lastb:顯示用戶登錄失敗的記錄 / 254
7.19lastlog:顯示所有用戶的最近登錄記錄 / 255
第8章 Linux磁碟與文件系統管理命令 / 257
8.1fdisk:磁碟分區工具 / 257
8.2partprobe:更新內核的硬碟分區表信息 / 265
8.3tune2fs:調整ext2/ext3/ext4文件系統參數 / 266
8.4parted:磁碟分區工具 / 268
8.5mkfs:創建Linux文件系統 / 272
8.6mpe2fs:導出ext2/ext3/ext4文件系統信息 / 274
8.7resize2fs:調整ext2/ext3/ext4文件系統大小 / 275
8.8fsck:檢查並修復Linux文件系統 / 278
8.9dd:轉換或復制文件 / 281
8.10mount:掛載文件系統 / 284
8.11umount:卸載文件系統 / 288
8.12df:報告文件系統磁碟空間的使用情況 / 289
8.13mkswap:創建交換分區 / 293
8.14swapon:激活交換分區 / 294
8.15swapoff:關閉交換分區 / 295
8.16sync:刷新文件系統緩沖區 / 296
第9章 Linux進程管理命令 / 298
9.1ps:查看進程 / 298
9.2pstree:顯示進程狀態樹 / 305
9.3pgrep:查找匹配條件的進程 / 306
9.4kill:終止進程 / 307
9.5killall:通過進程名終止進程 / 310
9.6pkill:通過進程名終止進程 / 311
9.7top:實時顯示系統中各個進程的資源佔用狀況 / 313
9.8nice:調整程序運行時的優先順序 / 320
9.9renice:調整運行中的進程的優先順序 / 323
9.10nohup:用戶退出系統進程繼續工作 / 324
9.11strace:跟蹤進程的系統調用 / 325
9.12ltrace:跟蹤進程調用庫函數 / 332
9.13runlevel:輸出當前運行級別 / 334
9.14init:初始化Linux進程 / 335
9.15service:管理系統服務 / 335
第10章 Linux網路管理命令 / 338
10.1ifconfig:配置或顯示網路介面信息 / 338
10.2ifup:激活網路介面 / 343
ifup eth0
10.3ifdown:禁用網路介面 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整個網路,所有網卡。
10.4route:顯示或管理路由表 / 344
10.5arp:管理系統的arp緩存 / 350
10.6ip:網路配置工具 / 351
10.7netstat:查看網路狀態 / 358
10.8ss:查看網路狀態 / 362
10.9ping:測試主機之間網路的連通性 / 363
10.10traceroute:追蹤數據傳輸路由狀況 / 366
10.11arping:發送arp請求 / 367
10.12telnet:遠程登錄主機 / 369
10.13nc:多功能網路工具 / 370
10.14ssh:安全地遠程登錄主機 / 373
10.15wget:命令行下載工具 / 376
10.16mailq:顯示郵件傳輸隊列 / 379
10.17mail:發送和接收郵件 / 381
10.18nslookup:域名查詢工具 / 386
10.19dig:域名查詢工具 / 389
10.20host:域名查詢工具 / 393
10.21nmap:網路探測工具和安全/埠掃描器 / 394
10.22tcpmp:監聽網路流量 / 398
第11章 Linux系統管理命令 / 407
11.1lsof:查看進程打開的文件 / 407
11.2uptime:顯示系統的運行時間及負載 / 411
11.3free:查看系統內存信息 / 411
11.4iftop:動態顯示網路介面流量信息 / 413
11.5vmstat:虛擬內存統計 / 415
11.6mpstat:CPU信息統計 / 419
11.7iostat:I/O信息統計 / 420
11.8iotop:動態顯示磁碟I/O統計信息 / 423
11.9sar:收集系統信息 / 425
11.10chkconfig:管理開機服務 / 430
11.11ntsysv:管理開機服務 / 433
11.12 setup:系統管理工具 / 434
11.13ethtool:查詢網卡參數 / 436
11.14mii-tool:管理網路介面的狀態 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自動化RPM包管理工具 / 446
top命令
第12章 Linux系統常用內置命令 / 450
12.1Linux內置命令概述 / 450
12.2Linux內置命令簡介 / 450
12.3Linux常用內置命令實例 / 452

Ⅵ 用linux c語言編寫 為一個文件裡面的內容的每一行添加一個指定的字元

1、基本思路:從第一個文本文件中用
fgets()
函數讀出一行數據,對讀出的每一行數據進行判斷,如果需要在它的適當位置插入一行,把相應的新內容、以及該行的內容寫到第二個文本文件中。如果不需要在該位置插入一行,那就直接將該行數據用
fprintf()
函數寫入第二個文本文件中。
2、偽代碼:
1.打開要修改的文件A,
2.創建一個臨時文件B,
3.
while(沒到達文件A末尾)
從A中讀取一行,寫到B中,然後寫入要追加的內容,寫入換行符
4.關閉文件A,關閉文件B,
5.刪除文件A(用remove函數),重命名B為A(用rename函數)

Ⅶ Linux c中用mkdir函數創建10個文件在用rmdir函數刪掉用for循環

Linux c語言可以使用系統提供的mkdir函數來創建文件夾。

1、函數原型

int mkdir(const char *path, mode_t mode);

2、參數說明:


path是目錄回名mode是目錄許可權

3、需答要頭文件


#include<sys/stat.h>

4、示例


//添加mkdir函數聲明頭文件#include<sys/stat.h>#include<sys/types.h>intmain()//主函數{//直接調用mkdir函數//建立一個名為的文件夾//許可權為0777,即擁有者許可權為讀、寫、執行//擁有者所在組的許可權為讀、寫、執行//其它用戶的許可權為讀、寫、執行mkdir("",0777);return0;}

說明:函數調用試圖建立777許可權的文件夾,但是在實際程序執行時,還需要考慮umask值,最終才會得到實際的許可權。

5、執行效果如下圖所示

說明:t.c是源碼文件,有gcc進行編譯,-o是gcc的參數,有於指明編譯後輸出的文件,t為源碼經gcc編譯後生成的可執行文件。./t是執行當前目錄下的生成的可執行文件t。

閱讀全文

與linuxc刪除文件函數相關的資料

熱點內容
怎麼用編程畫小花 瀏覽:65
php文件如何下載文件 瀏覽:614
javacapsule 瀏覽:20
extjs按鈕垂直居中 瀏覽:163
ibjsx 瀏覽:647
直銷可編程直流電源哪裡買 瀏覽:952
蘋果6qq錄音文件聽不了 瀏覽:6
網路線怎麼拔 瀏覽:328
webclip文件有什麼危害 瀏覽:700
創維32e360e怎麼看網路電視 瀏覽:824
js網站載入動畫 瀏覽:411
shelljava 瀏覽:666
系統文件被刪可以還原嗎 瀏覽:835
萬方等網站怎麼下載 瀏覽:857
為什麼電腦文件顯示是寫字板 瀏覽:37
百度網盤打卡壓縮文件 瀏覽:925
英語怎麼讀的網站 瀏覽:115
怎麼遠程改電腦開機密碼 瀏覽:501
可以直接打開壓縮文件的瀏覽器 瀏覽:654
qq相冊一個文件可以存多少張照片 瀏覽:894

友情鏈接