Tag: macos

避免TIME_WAIT

我试图在客户端避免TIME_WAIT。 我连接然后设置O_NONBLOCK和SO_REUSEADDR。 我调用read直到它返回0.当read返回0时,errno也是0.我将此解释为服务器关闭连接的标志。 但是,如果我调用close,则套接字设置为TIME_WAIT,由netstat确认。 由于我与同一主机/端口建立了多个连接,因此我最终开始看到“使用中的地址”错误(请参阅http://hea-www.harvard.edu/~fine/Tech/addrinuse.html )。 读取返回0后,我应该关闭吗? 如果不这样,文件描述符会被释放吗?

发送ICMP ping

对于ICMP ping请求(echo请求),我是否需要获取目标的MAC地址? 我试图学习如何使用原始套接字在C中实现它,但无法理解如何获取目标的MAC地址。 任何帮助表示赞赏。 谢谢。

在Mac OS X上操作C中的剪贴板

如何使用C或命令行命令将文本复制到剪贴板?

从.txt文件中读取并执行Shellcode

从C总线测试Shellcode错误10 上面是我之前提出的问题,当shell代码在源代码中时,它涉及从ac程序中清除shellcode。 它由Carl Norum解决,并且是由于记忆保护。 我有一个不同的问题但是很相似。 我没有将shell代码放在同一个文件中,而是想从.txt文件中读取shell代码并执行它。 下面我尝试将一段内存标记为PROT_EXEC,并将.txt文件的内容读入其中并执行。 但是它不起作用,我得到了同样的错误,KERN_PROTECTION_FAILURE,我尝试使用mprotect和mmap将一段内存标记为PROT_EXEC。 #include #include #include #include int (*ret)(); unsigned char* buf; int main() { FILE* file; file = fopen(“text.txt”, “rb”); fseek(file, 0, SEEK_END); unsigned int len = ftell(file); fseek(file, 0, SEEK_SET); buf = valloc(len); fread(buf, 1, len, file); fclose(file); mprotect(buf, len, PROT_EXEC); // I also tried mmap, but same […]

如何使用C找到应用程序包(NSBundle)中文件的路径?

是否有用于查找应用程序包中文件路径的C API? 我知道这可以在Objective-C中使用以下语法完成。 NSString *path = [[NSBundle mainBundle] pathForResource:@”MyImage” ofType:@”bmp”]; 是否有一个相应的函数,我可以从C或C ++代码调用?

OSX:JavaVM,AWT / Swing以及可能的死锁

我是java编程的新手,所以如果这听起来像个愚蠢的问题,我会提前道歉。 我正在尝试构建一个用简单C编写的简单应用程序,它必须创建一个JavaVM ,然后通过加载基于AWT/Swing Java代码来创建一个新窗口。 按照本技术说明我了解到,仅在Mac OSX中,必须从与主线程不同的线程调用JavaVM,以便能够基于AWT创建GUI。 因此,在我的C应用程序的mainfunction中,我创建了一个执行所有操作的新线程,从创建javaVM到创建GUI。 由于应用程序实际上并不那么简单,我将发布一个简化版本。 主function: int main(int argc, char** argv) { // Run-time loading of JavaVM framework void *result; result = dlopen(“/System/Library/Frameworks/JavaVM.framework/JavaVM”, RTLD_LAZY); if (!result) { printf(“can’t open library JavaVM: %s\n”, dlerror()); } else { printf(“library JavaVM loaded\n”); } /* Start the thread that runs the VM. */ pthread_t vmthread; // […]

Xcode更改/删除评论模板

最近我一直在学习如何编程C.在大多数情况下,我一直在使用Eclipse的C版本。 最近,我尝试了Xcode。 我正在使用运行Mac OS X Lion的Mac – Xcode 4.1版。 我有一个不满:在我创建的每个文件的顶部,有一小部分评论我希望删除或更好,更改。 当我创建一个文件时,默认情况下这样的东西放在文件的顶部: // // FILE.c // PROJECT NAME // // Created by Martin Tuskevicius on DATE. // Copyright YEAR ORGANIZATION (my school name for some reason). All rights reserved. // 显然,首都的东西将被实际价值取代。 对于那些已经使用或已经使用Xcode进行编程C的人 – 你知道如何更改或删除这些默认注释的方法吗? 我非常感谢任何帮助。 谢谢!

gcc默认在Mac OS X上的C中链接数学库?

从这个问题: 为什么你必须在C中链接数学库? 我知道C数学库(libm)与C标准库(libc)分离,默认情况下没有链接。 但是当我在mac osx 10.11.1上使用gcc filename.c而不是-lm编译下面的代码时: #include #include int main (void) { double x = sqrt (2.0); printf (“The square root of 2.0 is %f\n”, x); return 0; } 没有链接错误,输出可执行文件正常工作。 然后我试了otool -L output : output: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) /opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) 我想知道mac上有一些库结构差异吗? 或者它是gcc 5.2.0的新function? 非常感谢! 更新: […]

在MAC上编译SDL

#include “ffmpeg/libavcodec/avcodec.h” #include “ffmpeg/libavformat/avformat.h” #include “ffmpeg/libswscale/swscale.h” #include “ffmpeg/libswscale/rgb2rgb.h” #include “ffmpeg/libswscale/swscale_internal.h” #include #ifdef __MINGW32__ #undef main /* Prevents SDL from overriding main() */ #endif #include “SDL.framework/Headers/SDL.h” #include “SDL.framework/Headers/SDL_thread.h” 是用这个命令编译的: gcc -o t1 tutorial01.c -lswscale -lavutil -lavformat -lavcodec -lz -lavutil -lm -framework SDL 但我得到这个错误: Undefined symbols: “_main”, referenced from: start in crt1.10.6.o (maybe you meant: _SDL_main) ld: […]

如何在Sublime Text 2 上运行和编译.c

我现在在大学学习C,老师告诉我使用代码块作为IDE,但在我看来,代码块有点难看,这就是为什么我选择Sublime Text 2,那里最好的IDE /文本编辑器。 目前我通过sublime编写我的代码,保存它然后通过mac os终端(gcc)编译它,然后在终端上运行它… 我想知道的是,如果它是可能的,是如何从sublime,使用它的控制台或插件(或其他东西),换句话说我想知道是否可以编译我的.c并运行只需点击几下即可获得…(现在我只是构建控制台应用程序) 我在这里读到了一些关于这个主题的post,但没有一个能帮助我解决这个问题。