草庐IT

c - UNIX系统编程中的S_IFMT是什么?

我正在学习系统调用,因此正在编写代码来使用C语言实现ls。代码有效,但我无法理解val=(mystat.st_mode&~S_IFMT)在下面给出的代码中?我理解其余代码。#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){DIR*mydir;structdirent*myfile;structstatmystat;mydir=opendir(argv[1]);charbuf[512];while((myfile=readdir(mydir))!=NULL){struc

c - UNIX系统编程中的S_IFMT是什么?

我正在学习系统调用,因此正在编写代码来使用C语言实现ls。代码有效,但我无法理解val=(mystat.st_mode&~S_IFMT)在下面给出的代码中?我理解其余代码。#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){DIR*mydir;structdirent*myfile;structstatmystat;mydir=opendir(argv[1]);charbuf[512];while((myfile=readdir(mydir))!=NULL){struc