栗子:设计一个程序,应用system函数列出当前目录下的文件信息,以及系统“/dev/sda1”和“/dev/lp0”的文件信息。
程序:
运行结果
各种文件类型的含义:
命令 | 作用 |
---|---|
普通文件 | 权限的十个字符中的第一位是“-”的文件 |
目录文件 | 权限的十个字符中的第一位是“d”的文件 |
硬链接文件 | 除了显示的文件数量,其他都和某个普通文件一模一样的文件 |
软件链接文件 | 权限的十个字符中的第一位是“l”的文件 |
块设备文件 | 权限的十个字符中的第一位是“b”的文件 |
socket文件 | 权限的十个字符中的第一位是“s”的文件 |
字符设备文件 | 权限的十个字符中的第一位是“c”的文件 |
管道文件 | 权限的十个字符中的第一位是“p”的文件 |
setUid可执行文件 | 权限的十个字符中的第四位是“s”的文件 |
setGid可执行文件 | 权限的十个字符中的第七位是“s”的文件 |
setUid加setGid文件 | 权限的十个字符中的第四位和第七位是“l”的文件 |
system函数简介
所需头文件 | #include<stdlib.h> |
---|---|
函数功能 | 在进程中开始另一个进程 |
函数原型 | int system(const char *string) |
函数传入值 | 系统变量 |
函数返回值 | 执行成功则返回执行Shell命令后的返回值;调用/bin/sh失败后返回127;其他原因失败则返回-1;参数string为空(NULL),则返回非零值 |
备注 | system()调用fork()产生子进程,子进程调用/bin/sh -c string来执行参数,string字符串所代表的命令,此命令执行完后随即返回原调用的进程。如果调用成功,返回Shell命令后的返回值可能也是127,因此,最好能检差errno来确定的执行情况 |
点击链接加入群聊【程序员技术交流群】:添加链接描述