io线程作业

#include <stdio.h>                                                                       
#include <sys/types.h>                                                                   
#include <sys/stat.h>                                                                    
#include <unistd.h>                                                                      
#include <stdlib.h>                                                                      
#include <time.h>                                                                        
#include <fcntl.h>                                                                       
#include <pwd.h>                                                                         
#include <grp.h>                                                                         
                                                                                         
                                                                                         
//目录类型                                                                               
int leixing(mode_t m)                                                                    
{                                                                                        
    if(S_ISREG(m))                                                                       
        putchar('-');                                                                    
    else if(S_ISBLK(m))                                                                  
        putchar('b');                                                                    
    else if(S_ISCHR(m))                                                                  
        putchar('c');                                                                    
    else if(S_ISDIR(m))                                                                  
        putchar('d');                                                                    
    else if(S_ISLNK(m))                                                                  
        putchar('l');                                                                    
    else if(S_ISSOCK(m))                                                                 
        putchar('s');                                                                    
    else if(S_ISFIFO(m))                                                                 
        putchar('p');                                                                    
                                                                                         
}                                                                                        
//文件权限                                                                               
int quanxian(mode_t m)                                                                   
{                                                                                        
    int i = 0, res = 0;                                                                  
    for(i=8; i>=0; i--)                                                                  
    {                                                                                    
        if((m & 1<<i) == 0)                                                              
        {                                                                                
            putchar('-');                                                                
        }else                                                                            
        {                                                                                
            res = i % 3;                                                                 
            if(res == 2)                                                                 
            {                                                                            
                putchar('r');                                                            
            }else if(res == 1)                                                           
            {                                                                            
                putchar('w');                                                            
            }else                                                                        
            {                                                                            
                putchar('x');                                                            
            }                                                                            
        }                                                                                
    }                                                                                    
    printf(" ");                                                                         
}                                                                                        
//硬链接数                                                                               
int llianjie(nlink_t m)                                                                  
{                                                                                        
    printf("%ld ",m);                                                                    
    return 0;                                                                            
}                                                                                        
//用户名                                                                                 
int myuid(uid_t uid)                                                                     
{                                                                                        
    struct passwd *p = getpwuid(uid);                                                    
    printf("%s ",p->pw_name);                                                            
    return 0;                                                                            
}                                                                                        
//组名                                                                                   
int mygrp(gid_t gid)                                                                     
{                                                                                        
    struct group *p = getgrgid(gid);                                                     
    printf("%s ",p->gr_name);                                                            
    return 0;                                                                            
}                                                                                        
//文件大小                                                                               
int mysize(off_t m)                                                                      
{                                                                                        
    printf("%6ld ",m);                                                                   
    return 0;                                                                            
}                                                                                        
//时间                                                                                   
int mytime(time_t m)                                                                     
{                                                                                        
    struct tm *p = localtime(&m);                                                        
    printf("%2d月   %2d  %02d:%02d ",p->tm_mon+1,p->tm_mday, p->tm_hour,p->tm_min);      
    return 0;                                                                            
}            
————————————————
版权声明:本文为CSDN博主「来日定方长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_56095954/article/details/126076960

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值