1. 程式人生 > >Linux中的struct stat 結構體和 stat() 函式

Linux中的struct stat 結構體和 stat() 函式

  1. 根據下面的連結,直接看使用 struct stat 結構體和 stat() 函式的程式:
對於 struct stat 結構體型別的 buf 變數中的 st_size 的資料型別,根據網上查到的資料,在64位系統下為 long long int 型別,所以我們將該變數進行型別轉換後使用 printf 函式顯示輸出。
為了檢視 struct stat 在本地 Linux 系統中的結構體定義,可以使用下面的方法: 在 Ubuntu 中可以使用 gdb 工具來檢視 struct stat 結構體的定義 whatis:識別陣列或變數的型別 ptype:比whatis的功能更強,他可以提供一個結構的定義
set variable:將值賦予變數 print 除了顯示一個變數的值外,還可以用來賦值
從上面可以看出 struct stat 結構體的定義,我們可以進一步檢視 __off_t 型別的定義,為 long 型,既然我們已經知道了上面程式中的 buf.st_size 變數的資料型別,那我們就可以使用 printf("%ld", buf.st_size); 來格式化輸出該變量了。
將程式進行修改:
執行後的結果:

相關推薦

Linuxstruct stat 結構 stat() 函式

根據下面的連結,直接看使用 struct stat 結構體和 stat() 函式的程式: 對於 struct stat 結構體型別的 buf 變數中的 st_size 的資料型別,根據網上查到的資料,在64位系統下為 long long int 型別,所以我們將該變數進行

C# System.Index 結構 Hat 運算子(^)的全新用法

> 翻譯自 John Demetriou 2019年2月17日 的文章 [《C# 8 – Introducing Index Struct And A Brand New Usage For The Hat Operator》](http://www.devsanon.com/c/c-8-introdu

UNIX網路程式設計-結構相關函式

  IPv4結構體 除非涉及路由套接字,否則不用設定和檢查 sin_len 欄位 POSIX規範只要求結構中的3個欄位,sin_family,sin_addr,sin_port sin_family對應的是 sa_family_t sin_port  對應的是 in_

UNP筆記(1)——基本結構工具函式

一、socket相關結構體 socket相關的結構體主要是存放地址的一些結構體,例如sockaddr_in(最常用)、sockaddr_in6(IPv6地址結構體)、sockaddr(socket的函式裡面都用這個當引數,其他結構體強轉過來)和sockaddr_stora

go 結構函式方法 介面

go中沒有類的概念,只有結構體。 定義結構體使用type struct 關鍵字 type typeName struct { var1 Type var2 Type ... varn Type } 其它面向物件的語言中類包含屬性和方法,go

我看task_struct結構do_fork函式

先來看看task_struct結構體。 眾所周知,task_struct結構體是用來描述程序的結構體,程序需要記錄的資訊都在其中,下面我們來看看其中的具體專案。結構體儲存在linux/sched.h中。 具體的欄位有 volatile long sta

linux檔案描述符fdstruct file結構的釋放

簡單歸納:fd只是一個整數,在open時產生。起到一個索引的作用,程序通過PCB中的檔案描述符表找到該fd所指向的檔案指標filp。 檔案描述符的操作(如: open)返回的是一個檔案描述符,核心會在每個程序空間中維護一個檔案描述符表, 所有開啟的檔案都將通過此表中的檔

struct stat結構st_mode引數的含義

這個Sticky Bit當前只針對目錄有效,對檔案沒有效果。SBit對目錄的作用是:“在具有SBit的目錄下,使用者若在該目錄下具有w及x許可權,則當用戶在該目錄下建立檔案或目錄時,只有檔案擁有者與root才有權力刪除”。換句話說:當甲使用者在A目錄下擁有group或other的專案,且擁有w許可權,這表示甲

獲取一個檔案的屬性(struct stat結構)

1 標頭檔案 #include <sys/types.h> #include <sys/stat.h> 2 作用/功能 描述一個linux系統檔案系統中的檔案屬性的結構 3 獲取一個檔案的屬性的兩種方法 (1)通過路徑 int stat(con

Linux 獲取檔案屬性 函式 stat, fstat, lstat 以及 stat 結構

linux程式設計裡,有三個函式可以獲取 檔案的屬性(包含了檔案型別和檔案許可權等屬性)。 三個函式的原型如下: #include <sys/stat.h> int stat(const char *restrict pathname, struct sta

sturct stat 結構 st_mode 的含義

在<sys/stat.h>中定義的stat結構體內容如下: struct stat { dev_t st_dev; /* ID of device containing file */

【C/C++檔案處理系列】struct stat 結構定義

獲取檔案狀態的函式 stat fstat lstat 都與struct stat 有關。函式原型如下,都定義在   sys/stat.h 中,原型如下   int stat(const char *path, struct stat *buf);   int fstat(i

linux下的stat命令及對stat結構的剖析

-f  顯示檔案所在檔案系統的資訊 -L  顯示符號連結 -t  簡潔模式,只顯示摘要資訊 在看之前,我們先ll一下,在裡面找個檔案,我選擇了之前建好的tet.c檔案 我們可以看到-L顯示了很多資訊,包括size,Block,以及檔案的三個時間(atime,ctime,mtime關於這三個時間在我的另一篇

淺談c++結構共用的區別

ont 基本類型 erl list 變量名 ext 使用結構體 oot 數據格式 在c++中,結構體(struct)和共用體(union)是兩種很相似的復合數據類型,都可以用來存儲多種數據類型,但是兩者還有很大的區別。 結構體(struct) 結構是用戶自定

Linuxip地址結構ip地址的轉換

class \n image nbsp toa shel string linux .com ip地址結構 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET *

結構連結串列陣列指標不同表達形式

int getMaxLengthOfItems(MEC_MENU *menu,int count){     int i;     int maxLen = strlen(menu[0].item);     for(i = 0; i < c

Linux 下 可以使用ioctl()函式 以及 結構 struct ifreq 結構struct ifconf來獲取網路介面的各種資訊。

轉載於:windeal專欄   Linux 下 可以使用ioctl()函式 以及 結構體 struct ifreq  結構體struct ifconf來獲取網路介面的各種資訊。   ioctl 首先看ioctl()用法 ioctl()原型如下:

C#結構類區別聯絡

結構體 結構體定義 結構體是一種值型別,通常用來封裝小型相關變數組。例如座標或者商品的特徵。 結構體是一種自定義的資料型別,相當於一個複合容器,可以儲存多種型別。 結構體由結構體成員構成,結構體成員包含欄位,屬性與方法 結構體建

C#結構類的區別

結構體和類同樣能夠定義欄位,方法和建構函式,都能例項化物件,這樣看來結構體和類的功能好像是一樣的了,但是他們在資料的儲存上是不一樣的C#結構體和類的區別問題:這兩種資料型別的本質區別主要是各自指向的記憶體位置不同。傳遞類的時候,主要表現為是否同時改變了源物件。1.結構體是值型

【知識積累】C#結構類的區別

【類】     類是對現實生活中一類具有共同特徵的事物的抽象。類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存