linux 进程 end,linux c 获得当前进程的进程名和执行路径(示例)

[sam@hzhsan test]$ more test_processname.cpp

#include

#include

#include

#include

size_t get_executable_path( char* processdir,char* processname, size_t len)

{

char* path_end;

if(readlink("/proc/self/exe", processdir,len) <=0)

return -1;

path_end = strrchr(processdir,  '/');

if(path_end == NULL)

return -1;

++path_end;

strcpy(processname, path_end);

*path_end = '\0';

return (size_t)(path_end - processdir);

}

int main()

{

char path[PATH_MAX];

char processname[1024];

get_executable_path(path, processname, sizeof(path));

printf("directory:%s\nprocessname:%s\n",path,processname);

}

[sam@hzhsan test]$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 Linux C 语言进程池筛素数的实现方式: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> #define N 1000 // 筛选 1~N 的素数 // 筛素数的函数 void sieve(int n, int *primes) { int i, j; int is_prime; primes[0] = primes[1] = 0; for (i = 2; i <= n; i++) { is_prime = 1; for (j = 2; j < i; j++) { if (i % j == 0) { is_prime = 0; break; } } primes[i] = is_prime; } } // 进程池中的子进程,根据起始和结束下标筛素数 void worker(int start, int end, int *primes) { int i, j; int is_prime; for (i = start; i <= end; i++) { is_prime = 1; for (j = 2; j < i; j++) { if (i % j == 0) { is_prime = 0; break; } } primes[i] = is_prime; } } int main() { int num_processes = 4; // 进程数 int primes[N + 1]; // 存储素数信息的数组 int i, j; pid_t pid; int start, end; // 初始化 primes 数组 for (i = 0; i <= N; i++) { primes[i] = 1; } // 创建进程池 for (i = 0; i < num_processes; i++) { start = i * (N / num_processes) + 1; end = (i + 1) * (N / num_processes); if (i == num_processes - 1) { end = N; } pid = fork(); if (pid == 0) { worker(start, end, primes); exit(0); } } // 等待所有子进程执行完毕 for (i = 0; i < num_processes; i++) { wait(NULL); } // 输出素数 for (i = 2; i <= N; i++) { if (primes[i] == 1) { printf("%d ", i); } } printf("\n"); return 0; } ``` 该程序首先创建一个长度为 `N+1` 的整型数组 `primes`,用于存储 1~N 的素数信息。然后创建一个进程池,每个子进程负责筛选一部分素数。具体来说,每个子进程根据自己的起始和结束下标,从中筛选素数,将素数信息存储在 `primes` 数组中。最后,主进程遍历 `primes` 数组,输出素数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值