zoukankan      html  css  js  c++  java
  • lua 设置文件运行的环境

    背景

    在一个lua文件中书写的代码, 使用的变量, 需要设置其运行环境。

    目的:

    1、 不破坏全局环境。

    2、 限定文件所使用的环境, 作为沙箱功能。

    解法

    限定运行空间环境的文件:

    local m = {}
    
    m.dingzhiprint = function ()
        print("nasView print")
        
        print(os.getenv("PWD"))
    end
    
    bbb = 1
    
    print("dmenu="..dmenu)
    
    return m

    加载上个文件的代码 (将dmenu的值,传入上个文件, 并限定只能在全局环境中读取):

    function callfunc()
        local dmenu = "aaaa"
        
    
        local prog = _G.loadfile("newModule.lua") --check lua or chunk
        
        --local _env
        local env = setmetatable({dmenu=dmenu}, {__index=_G})
        --local env = getfenv(1)
        if env then
            --_env = getfenv (prog)
            setfenv (prog, env)
        end
    
        prog ()    
        
    end
    
    
    callfunc()
  • 相关阅读:
    chrome.declarativeWebRequest
    webRequest模块的解读
    C#连接池
    sftp
    Lynx
    LD_PRELOAD & LD_LIBRARY_PATH 动态库路径
    libc.so.6 误删后修复
    man 转 pdf _____ jpg 转 pdf
    here文档
    lsof fuser
  • 原文地址:https://www.cnblogs.com/lightsong/p/6351359.html
Copyright © 2011-2022 走看看