草庐IT

包装类

全部标签

go - 尝试包装函数时函数用作值错误

我正在使用TheWaytoGo一书自学使用net/http包。他提到了一种将处理函数包装在闭包中的方法,这样可以处理panics:funcIndex(whttp.ResponseWriter,req*http.Request){w.Header().Set("Content-Type","text/html")fmt.Fprint(w,"Index")}funclogPanics(functionHandleFunc)HandleFunc{returnfunc(whttp.ResponseWriter,req*http.Request){deferfunc(){iferr:=recov

c++ - 用 Go 构建包装 C++

我正在尝试在Go中包装C++代码(LabStreamingLayer)。更新:@dragonx解释了如何在没有swig的情况下使用gobuild。但我仍然遇到链接器问题。构建依赖于LSL/libsl/bin/liblsl.dylib。我如何告诉gobuild使用该文件?我尝试了gobuild-ldflags"-L../liblsl/bin-llsl"app.go但没有成功。Godocumentation表示gobuild将为具有.swigcxx扩展名的文件调用带有c++选项的Swig,但是gobuild提示目录中没有可构建的Go源文件。平台:DarwinGo版本:1.8Swig版本:3

go - 在不重新分配新 slice 的情况下将项目附加到可变函数包装器

好的,我需要一个fmt.Printf()的小包装器来方便调试:1/“调用fmt.Fprintln时参数过多”:funcDebug(a...interface{}){ifdebug{fmt.Fprintln(out,prefix,sep,a...)}}2/“接口(interface)类型中不允许的名称列表”:funcDebug(a...interface{}){ifdebug{fmt.Fprintln(out,[]interface{prefix,sep,a...}...)}}3/有效,但感觉不对:funcDebug(a...interface{}){ifdebug{sl:=make([

logging - 是否可以在不丢失行号前缀的情况下包装 log.Logger 函数?

当使用log.Lshortfile标志时,记录器会在所有日志行前加上记录器函数调用的文件名和行号,例如:myfile.go:14:Hello,world!IfIwrapthelogfunctionlikethis,forinstance:funcinfo(patternstring,args...interface{}){myLogger.Printf(pattern+"\n",args...)}此函数发出的每一行都将以Printf调用的行号作为前缀。这是预期的,但所需的行为是为每一行添加调用info的行的行号作为前缀。有什么解决办法吗? 最佳答案

git - 在 Vim 中自动包装长 Git 提交消息

使用Git,我的提交编辑器是Vim。我经常在记住换行方面做得很差,所以我会排很长的队(例如,参见thisanswer)。有没有办法使用一些gitconfig或.vimrc魔法让Vim在72列处自动换行?Relatedquestion. 最佳答案 将此添加到您的.vimrc:auFileTypegitcommitsetlocaltw=72 关于git-在Vim中自动包装长Git提交消息,我们在StackOverflow上找到一个类似的问题: https://st

c - 包含 unistd.h 的 write() 的包装例程导致错误

我正在为write()编写一个包装例程来覆盖原始系统函数,在其中我需要通过execve()执行另一个程序;为此,我包含了头文件unistd.h。我收到错误conflictingtypesfor'write'/usr/include/unistd.h:363:16:note:previousdeclarationof'write'washere。如果有人能帮助我,我将不胜感激,因为我需要从包装器内部调用另一个程序,并从包装器例程内部向它发送参数。 最佳答案 GNU链接器有一个--wrap允许您执行此类操作的选项。如果您链接--wrap

java - 您是否知道任何包装通用 linux 操作系统 API 的 JNI 包装器工具包或库?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找一个库或工具包(因此我不必编写它),它们可以让我在Linux中执行以下常见操作:获取用户名的uid。获取用户/组成员信息。获取有关磁盘驱动器可用空间的信息。任何其他可能有用的API调用通常在Java中不可用,因为它们破坏了可移植性。有人有什么想法吗?

c++ - 有人有用 C++ 包装函数的例子吗?

我在网上搜索了很多,但找不到适用于g+的示例,所有示例均适用于GCC。我不断收到的错误是:wrap_malloc.o:Infunction`__wrap_malloc(unsignedint)':wrap_malloc.cc:(.text+0x20):undefinedreferenceto`__real_malloc(unsignedint)'wrap_malloc.o:Infunction`main':wrap_malloc.cc:(.text+0x37):undefinedreferenceto`__wrap_malloc'collect2:ldreturned1exitstat

c - x86_64 Linux 上定义的 ioctl 系统调用的用户空间包装器在哪里?

我一直(出于好奇)想知道ioctl系统调用的用户空间包装器是在x86_64Linux上定义的。我的第一个想法是glibc——在我的Fedora24盒子上检查已安装版本的暴露符号后,我可以看到(除非我做错了)libc将ioctl符号暴露为“W”,这意味着它是一个弱符号默认实现。misc/ioctl.c的glibc源代码树中的默认实现似乎是一个stub,只是将errno设置为ENOSYS并返回-1。尽管如此,ioctl仍然有效(很明显,否则我的系统将不太可用)。我知道它可能是文件中某处的汇编代码,以某种方式组装和链接,从而覆盖了glibc公开的弱符号。我还知道,应用程序完全有可能通过gli

posix 和 linux 特定功能的 C++ 包装器

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion您是否知道将posix和linux函数和结构(例如套接字或文件描述符)包装到C++类中的任何好的库?例如,我正在考虑一个基本的FileDescriptor类和一些继承类(unix套接字等),它们具有写入、读取甚至一些系统调用(sendfile、splice)等方法——所有这些都抛出异常而不是设置errno。或者一些共享内存类等。我似乎找不到类似的东西,现在我考虑自己编