macos C 获取当前进程的执行路径

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <libproc.h>

int main (int argc, char* argv[])
{
    pid_t pid; int ret;
    char pathbuf[PROC_PIDPATHINFO_MAXSIZE];

    if ( argc > 1 ) {
        pid = (pid_t) atoi(argv[1]);
        ret = proc_pidpath (pid, pathbuf, sizeof(pathbuf));
        if ( ret <= 0 ) {
            fprintf(stderr, "PID %d: proc_pidpath ();\n", pid);
            fprintf(stderr, "    %s\n", strerror(errno));
        } else {
            printf("proc %d: %s\n", pid, pathbuf);
        }
    }
    return 0;
}
### 如何在 macOS 上配置 FRP #### 准备工作 为了成功安装并配置 FRP,在 macOS 设备上需先下载适合该操作系统的版本。FRP 提供了不同平台下的二进制文件,因此可以从官方 GitHub 发布页面获取最新版适用于 Darwin (macOS) 架构的压缩包。 #### 下载与解压 前往 [GitHub Releases](https://github.com/fatedier/frp/releases),找到最新的 release 版本,选择 `darwin` 平台对应的 tar.gz 文件进行下载。使用终端命令完成下载后的解压过程: ```bash tar -zxvf frp_*.tar.gz cd frp_*/ # 进入解压目录 ``` #### 配置服务端 (`frps`) 创建或编辑位于当前目录中的 `frps.ini` 文件来设置服务端参数。对于基本用途来说,只需指定绑定端口即可: ```ini [common] bind_port = 7000 ``` 此配置意味着 FRPS 将监听本地 7000 端口等待来自客户端连接请求[^2]。 #### 配置客户端 (`frpc`) 同样地,在同一路径下修改名为 `frpc.ini` 的配置文档以适应个人需求。这里展示了一个简单的例子用于映射 HTTP 请求至内部 Web 服务器: ```ini [common] server_addr = x.x.x.x ; 替换成实际公网 IP 地址 server_port = 7000 ; 应匹配上面定义的服务端 bind_port 值 [web] type = http ; 协议类型可以是 tcp, udp 或者其他支持的形式 local_ip = 127.0.0.1 ; 内网目标主机地址,默认为 localhost local_port = 80 ; 对应于内网 web 服务开放的端口号 custom_domains = example.com ; 自定义域名指向这个代理入口 ``` 上述实例展示了如何将外部访问重定向给运行在同一台计算机上的简单网页服务;如果要处理更复杂的情况,则可能还需要调整更多选项如身份验证机制等[^3]。 #### 启动 FRP 组件 分别启动服务端和客户端程序。可以通过如下方式执行相应可执行文件: ```bash ./frps -c ./frps.ini & ./frpc -c ./frpc.ini & ``` 注意:以上两条指令应当分开两个不同的 shell session 中依次输入执行,前者代表启动作为中介节点的角色——即公开互联网一侧的工作进程(`frps`),后者则是指代处于私有网络环境内的实体(`frpc`)负责发起穿透尝试的一方[^4]。 一旦这两个组件都已正常运作起来之后,就可以按照预期那样让外界能够顺利抵达被保护起来的目标资源啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Michael.Scofield

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值