lua脚本怎么获取当前正在执行的脚本的当前路径
例如有个lua脚本a.lua我在a.lua内部怎么写来获取路径当放在d:\a.lua就能得到d:\,放在d:\aaa\lua就能得到d:\aaa...
例如有个lua脚本a.lua
我在a.lua内部怎么写来获取路径
当放在d:\a.lua就能得到d:\,放在d:\aaa\lua就能得到d:\aaa 展开
我在a.lua内部怎么写来获取路径
当放在d:\a.lua就能得到d:\,放在d:\aaa\lua就能得到d:\aaa 展开
3个回答
展开全部
时代在发展科技在进步,互联网已经不是什么神秘的领域,现在越来越多的年轻人对于互联网越来越熟悉,甚至有些开始学习Linux系统方面的知识,下面小猿圈Linux讲师就讲关于如何在Linux系统获取当前工作路,希望对你有所帮助。
获取工作路径这里介绍两种方法:
1、使用getcwd()函数。
头文件:#include
定义函数:char*getcwd(char*buf,size_tsize);
函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf所指的内存空间,敏缺参数size为buf的空间桥悔辩大小。
实例:
voidgetPath()
{
charpPath[256]={0};
getcwd(buf,256);
printf("filePath:%s\n",pPath);
}
主函数调用此函数运行结果:
filePath:/home/myTest
2、使用readlink()函数
头文件:#include<unistd.h>
函数定义:intreadlink(constchar*path,char*buf,size_tbufsiz);
函数说明:此函数会将参数path的符号连接内容到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断前带。成功返回buf长度,失败返回-1。
实例:
voidgetPath()
{
charpPath[256]={0};
intret=-1;
ret=readlink("/proc/self/exe",pPath,256);
pPath[ret]="\0"
printf("thefilePath:%s\n",pPath);
}
intmain()
{
getPath();
}
运行结果:
thefilePath:/home/myTest/a.out
小猿圈Linux讲师提醒大家:每天学习一点技术问题,只要功夫深,铁杵磨成针,学习不是一朝一夕的,是需要付出行动的,而且还要坚持,学习新的技术需要不断的查阅资料,看视频,复习,练习,如果你工作中或者生活中遇到什么问题,可以到小猿圈去寻找答案的,相信会给你满意的答复
获取工作路径这里介绍两种方法:
1、使用getcwd()函数。
头文件:#include
定义函数:char*getcwd(char*buf,size_tsize);
函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf所指的内存空间,敏缺参数size为buf的空间桥悔辩大小。
实例:
voidgetPath()
{
charpPath[256]={0};
getcwd(buf,256);
printf("filePath:%s\n",pPath);
}
主函数调用此函数运行结果:
filePath:/home/myTest
2、使用readlink()函数
头文件:#include<unistd.h>
函数定义:intreadlink(constchar*path,char*buf,size_tbufsiz);
函数说明:此函数会将参数path的符号连接内容到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断前带。成功返回buf长度,失败返回-1。
实例:
voidgetPath()
{
charpPath[256]={0};
intret=-1;
ret=readlink("/proc/self/exe",pPath,256);
pPath[ret]="\0"
printf("thefilePath:%s\n",pPath);
}
intmain()
{
getPath();
}
运行结果:
thefilePath:/home/myTest/a.out
小猿圈Linux讲师提醒大家:每天学习一点技术问题,只要功夫深,铁杵磨成针,学习不是一朝一夕的,是需要付出行动的,而且还要坚持,学习新的技术需要不断的查阅资料,看视频,复习,练习,如果你工作中或者生活中遇到什么问题,可以到小猿圈去寻找答案的,相信会给你满意的答复
展开全部
如果在Windows下(……唯姿消Linux行不行不知道)
obj=io.popen("cd") --如果不在交互模式下,前面指知可以添加local
path=obj:read("*all"):sub(1,-2) --path存放当前路径
obj:close() --关掉句柄
上述原理是利用Windows的cd命令返回工作目录;至于sub(1,-2)是为了去掉换行符
当然如册慎果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)
require("lfs")
path=lfs.currentdir()
这个则是Lua文件系统库中的函数。
……就是这样
obj=io.popen("cd") --如果不在交互模式下,前面指知可以添加local
path=obj:read("*all"):sub(1,-2) --path存放当前路径
obj:close() --关掉句柄
上述原理是利用Windows的cd命令返回工作目录;至于sub(1,-2)是为了去掉换行符
当然如册慎果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)
require("lfs")
path=lfs.currentdir()
这个则是Lua文件系统库中的函数。
……就是这样
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果族答有lfs的话
lfs = require"lfs"慎衡
print(lfs.currentdir())
没有的话 会比较麻宽穗做烦一点
lfs = require"lfs"慎衡
print(lfs.currentdir())
没有的话 会比较麻宽穗做烦一点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询