当前位置: 技术问答>linux和unix
实现类似ls功能遇到的问题,求解!
来源: 互联网 发布时间:2016-02-16
本文导语: work2程序实现类似ls的功能,可以指定目录名,也可以不指定(显示当前目录下的文件信息),可以跟“-l”(具体显示),“-a”(包括隐藏文件)选项。 但是当运行程序后面跟文件路径,再跟-l选项时,有时会出现...
work2程序实现类似ls的功能,可以指定目录名,也可以不指定(显示当前目录下的文件信息),可以跟“-l”(具体显示),“-a”(包括隐藏文件)选项。
但是当运行程序后面跟文件路径,再跟-l选项时,有时会出现段错误,有时又是正常显示,请问这是什么原因,怎么解决。谢谢!
(其他形式,例如:“./work2”、“./work2 -l”、“./work2 -a”、“./work2 -l -a”、“./work2 /home/gaswei”、“./work2 /homegaswei -a”、
“./work2 /home/gaswei -l -a”均能正常显示)
运行结果如下:
[root@localhost gaswei]# ./work2 /home -l(错误)
段错误
[root@localhost gaswei]# ./work2 /home/gaswei -l(正常)
-rwxrwxr-x 1 gaswei gaswei 12410 Sat Oct 20 20:31:07 2007
work1
-rwxr-xr-x 1 root root 14092 Fri Oct 26 17:19:18 2007
work2
-rw-rw-r-- 1 gaswei gaswei 16 Sat Oct 20 20:31:41 2007
test
-rwxrwxr-x 1 gaswei gaswei 12094 Tue Oct 23 20:24:46 2007
test1
-rw-rw-r-- 1 gaswei gaswei 545 Tue Oct 23 20:24:44 2007
test1.c
-rw-rw-r-- 1 gaswei gaswei 521 Sat Oct 20 20:31:04 2007
work1.c
-rw-rw-r-- 1 gaswei gaswei 3478 Fri Oct 26 17:19:13 2007
work2.c
[root@localhost gaswei]# ./work2 /1 -l("1"文件夹里面有文件)
段错误
[root@localhost gaswei]# ./work2 /1 -l("1"文件夹里面没文件)
[root@localhost gaswei]#
但是当运行程序后面跟文件路径,再跟-l选项时,有时会出现段错误,有时又是正常显示,请问这是什么原因,怎么解决。谢谢!
(其他形式,例如:“./work2”、“./work2 -l”、“./work2 -a”、“./work2 -l -a”、“./work2 /home/gaswei”、“./work2 /homegaswei -a”、
“./work2 /home/gaswei -l -a”均能正常显示)
运行结果如下:
[root@localhost gaswei]# ./work2 /home -l(错误)
段错误
[root@localhost gaswei]# ./work2 /home/gaswei -l(正常)
-rwxrwxr-x 1 gaswei gaswei 12410 Sat Oct 20 20:31:07 2007
work1
-rwxr-xr-x 1 root root 14092 Fri Oct 26 17:19:18 2007
work2
-rw-rw-r-- 1 gaswei gaswei 16 Sat Oct 20 20:31:41 2007
test
-rwxrwxr-x 1 gaswei gaswei 12094 Tue Oct 23 20:24:46 2007
test1
-rw-rw-r-- 1 gaswei gaswei 545 Tue Oct 23 20:24:44 2007
test1.c
-rw-rw-r-- 1 gaswei gaswei 521 Sat Oct 20 20:31:04 2007
work1.c
-rw-rw-r-- 1 gaswei gaswei 3478 Fri Oct 26 17:19:13 2007
work2.c
[root@localhost gaswei]# ./work2 /1 -l("1"文件夹里面有文件)
段错误
[root@localhost gaswei]# ./work2 /1 -l("1"文件夹里面没文件)
[root@localhost gaswei]#
|
解析命令行写得太乱了
建议用getopt或者getopt_long
建议用getopt或者getopt_long