1.使用绝对路径执行的shell文件
(如/home/xxx/binfile)
直接使用dirname $0即可
2.对于使用相对路径执行的shell文件(如 ./xxx/binfile)pwd与dirname结合使用;pwd获得的是执行当前shell文件时,用户所在的位置
;dirname可以获得相对于那个位置的偏移:
例如某shell文件所在的位置是/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src/notify_serv/shell文件名
1 #!/bin/sh
2 pwd
3 echo `dirname $0`
执行后输出
/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src
./notify_serv首先
DIR
*opendir(const
char
*filename)
struct
dirent
*readdir(DIR
*dirp)
利用这两个函数获取你目录下
while(
(psDirent=readdir(pdir))
!=
NULL
)
{
//readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件
struct
stat
st
stat(
pcFileName,
&st
)
if(
S_ISDIR(st.st_mode)
)
continue;//是目录继续循环
else
filecount++;//是文件就加1
}
从循环出来后创建文件名为file(filecount+1)的文件。
这个只是简单思路。最后别忘closedir。因为你的需求里,并未涉及文件创建个数的上限以及如果删掉某个文件后的需求。
通常,如果你目录下文件个数固定似乎更好办一些。
评论列表(0条)