草庐IT

self-referencing

全部标签

windows - Mac OS X 上的/proc/self/cmdline/GetCommandLine 是什么?

如何在不使用argc、argv的情况下访问MacOSX上的命令行?在Linux上,我会简单地阅读/proc/self/cmdline或在Windows上使用GetCommandLine,但我找不到MacOSX的等效项。 最佳答案 crt_externs.h中有函数_NSGetArgv和_NSGetArgc.但是,将argc/argv存储在main开头的变量中并可移植到所有三个平台不是更简单吗?注意:这些函数没有直接记录,但在ApplicationKitFunctionsReference中NSApplicationMain的文档中提

linux - Linux 内核中实现 open ("/proc/self/fd/NUM"的代码在哪里?

我一直认为执行open(/proc/self/fd/NUM,flags)等同于dup(NUM),但显然事实并非如此!例如,如果您dup一个文件描述符,然后将新的fd设置为非阻塞,这也会影响原始文件描述符(因为非阻塞状态是文件描述的一个属性,并且两个文件描述符都指向相同的文件描述)。但是,如果你打开/proc/self/fd/NUM,那么你似乎得到了一个新的独立文件描述,并且可以独立设置你的新旧fds的非阻塞状态。您甚至可以使用它来获取引用同一个匿名管道的两个文件描述,否则这是不可能的(example)。另一方面,虽然您可以dup套接字fd,但如果NUM引用套接字,open("/proc

linux - 修改和保存文件时通知 delete_self

我正在运行一个小的inotify脚本来设置一个文件的监视。每次编辑和保存该文件时,脚本都会注意到触发了DELETE_SELF事件。这是正常的吗?如果是,为什么?inotify子系统难道不应该注意到该文件仍然存在吗? 最佳答案 这取决于正在编辑文件的应用程序正在用它做什么。在这种情况下,听起来您的编辑器在保存文件时的行为是删除旧文件并将新内容写入同名的新文件。从inotify的角度来看,这正是发生的事情,因此它会触发删除事件,然后触发创建事件。Inotify无法知道被删除的文件和在其位置创建的文件在逻辑上是相关的。

linux - 来 self 廉价的中国 IP 网络摄像头的 JPEG 流是什么格式?

我有一个便宜的中国IP网络摄像头,它有一个显示实时视频的网络界面。该视频似乎是输入浏览器的一系列jpeg图像。如果我将wget指向URLhttp://my-ip-camera/video.cgi我收到了以下格式的大量流式数据:--ipcameraContent-Type:image/jpegContent-Length:46056JFIFheaderdata...lotsofdata...每个“帧”都会重复此模式。这是我可以播放/转码的某种“标准”流媒体格式,还是强制进入我的浏览器的JPEG集合,只是尽可能快地呈现它们?我尝试使用VLC,但它无法处理URL。我的IP摄像头中的软件非常糟

c++ - 请解释此链接错误 : referenced in section . rodata

我正在32位SLES10机器上进行构建。使用GCC3.4.2这是一个示例错误`.L8245'referencedinsection`.rodata'ofCMakeFiles/myproj.dir/c++/util/MyObj.o:definedindiscardedsection`.gnu.linkonce.t._ZN5boost9re_detail9reg_grep2INS0_21grep_search_predicateIPKcSaIcEEES4_cNS_12regex_traitsIcEES5_S5_EEjT_T0_SA_RKNS_14reg_expressionIT1_T2_T

c - pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

该引用来自manpageofpthread_self().那么,我应该根据什么来决定我应该使用pthread_self还是gettid来确定哪个线程正在运行该函数?两者都是不可移植的。为什么有两个不同的函数来获取线程ID? 最佳答案 So,onwhatbasisshouldIdecidewhetherIshouldusepthread_selforgettidtodeterminewhichthreadisrunningthefunction?只要您想在应用程序中识别线程,就应该始终使用pthread_self()。gettid()

c - Linux C - 实现程序可以 self 更新的能力

我正在Linux环境(Debian-Lenny)上用C编写一个程序,并希望在有更新可用时更新程序(当有新更新可用时程序会收到通知)。我正在寻找一种程序可以self更新的方法。我的想法是主程序调用一个新程序来处理更新。更新程序将拥有(访问)源代码并接收有关源代码更改的更新信息,类似于:edit1:line20,removecolumn5to20;edit2:line25,removecolumn4-7thenadd"if(x>3){"fromthecolumn4edit3:line26,enteranewlineandinsert"x++;"然后杀死主进程,重新编译源代码,然后用旧的替换

c# - SignalR Owin Self-Host on Linux/Mono SocketException 当客户端失去连接时

我在ubuntu服务器14.04、mono3.2.8上运行非常简单的信号器服务器,通过Owin自托管。(下面的代码)。连接/断开连接在远程Windows服务器和我将这些位部署到Linux服务器时都可以正常工作。但是当一个客户端意外死亡而不是告诉信号器他正在断开连接时,那是我只在linux服务器上得到一个永无止境的SocketException的时候。Windows服务器在大约30秒后断开客户端连接,但linux服务器每隔10秒左右就会永远喷出socketexception(也在下面)。我怎样才能使linux服务器在运行相同代码时表现得像windows服务器一样,在设置的超时后断开用户连

c++ - 我如何判断 pthread_self 是否是进程中的主(第一个)线程?

背景:我正在开发一个被许多程序使用的日志库。我正在为每个线程分配一个人类可读的名称,主线程应该是“main”,但我希望能够从库中检测到该状态,而不需要在每个main()函数的开头编写代码.另请注意:库代码并不总是首先从主线程进入。 最佳答案 这有点可行,具体取决于您所使用的平台,但绝对不是以任何可移植和通用的方式...根据他们的pthread.h,MacOSX似乎是唯一具有直接和记录方法的系统。文件:/*returnsnon-zeroifthecurrentthreadisthemainthread*/intpthread_main

当我有正确的能力时无法打开/proc/self/oom_score_adj

我正在尝试为进程设置OOMkiller得分调整,灵感来自oom_adjust_setupinOpenSSH'sport_linux.c.为此,我打开/proc/self/oom_score_adj,读取旧值,然后写入新值。显然,我的进程需要是root或具有CAP_SYS_RESOURCE的能力才能做到这一点。我得到了一个我无法解释的结果。当我的进程没有能力时,我可以打开该文件并读取和写入值,尽管我写入的值没有生效(足够公平):$./a.outCAP_SYS_RESOURCE:noteffective,notpermitted,notinheritableoom_score_adjval