1、getpwuid函数
#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>
int main(int argc, char *argv[])
{
uid_t uid = 1000;
struct passwd * pw = getpwuid(uid);
printf("name:%s gid:%d info:%s wd:%s shell:%s\n",pw->pw_name,pw->pw_gid
,pw->pw_gecos,pw->pw_dir,pw->pw_shell);
return 0;
}
2、getgruid函数
#include <stdio.h>
#include <sys/types.h>
#include <grp.h>
int main(int argc, char *argv[])
{
gid_t gid = 1000;
struct group * gr= getgrgid(gid);
printf("name:%s gid:%d\n",gr->gr_name,gr->gr_gid);
return 0;
}
3、time 、 ctime、 localtime
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
time_t tm;
time(&tm);
printf("%lu",tm);
return 0;
}
int main(int argc, char *argv[])
{
time_t tm;
time(&tm);
printf("%s",ctime(&tm));
return 0;
}
int main(int argc, char *argv[])
{
time_t tm;
time(&tm);
struct tm *tm_info = localtime(&tm);
if(NULL == tm_info)
{
printf("localtime error\n");
return 1;
}
printf("%d-%d-%d %d:%d:%d\n",tm_info->tm_year+1900,tm_info->tm_mon+1,tm_info->tm_mday
,tm_info->tm_hour,tm_info->tm_min,tm_info->tm_sec);
return 0;
}
4、symlink link 软链接、硬链接
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int ret = symlink("./15localtime.c","softlink");
if(-1 == ret)
{
printf("symlink error\n");
return 1;
}
return 0;
}
int main(int argc, char *argv[])
{
int ret = link("./01ls.c","hardlink");
if(-1 == ret)
{
printf("link error\n");
return 1;
}
return 0;
}
5、truncate:扩大缩小空间,清零
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(int argc, char *argv[])
{
fopen("aaa","w");
int ret = truncate("aaa",1024*1024*1024);
if(-1 == ret)
{
printf("truncate error\n");
return 1;
}
return 0;
}
6、perror、error、strerror :指出错误
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE* fp = fopen("12312","r");
if(NULL == fp)
{
perror("fopen");
return 1;
}
char buf[256]={0};
if(NULL == fgets(buf,sizeof(buf),fp))
{
perror("fgets");
return 1;
}
else
{
printf("buf is %s\n",buf);
}
return 0;
}
#include <stdio.h>
#include <error.h>
#include <errno.h>
// errno
int main(int argc, char *argv[])
{
FILE* fp = fopen("12312","r");
if(NULL == fp)
{
error(1,errno,"fopen,filename:%s func:%s linenum:%d",__FILE__,__func__
,__LINE__);
printf("aaa\n");
return 1;
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i = 0 ;
for(i = 0 ;i<256;i++)
{
printf("%d %s\n",i,strerror(i));
}
return 0;
}
7、makefile
src = jisuan.c //主函数
src += func.c //额外分装函数
obj = a.out //执行名
flag = -lm //链接
$(obj):$(src)
gcc $(src)-0 $(obj)
clean:
rm $(obj)