我写了一个简单的程序来理解execl()的概念.这是我的计划
#include<stdio.h>
#include<unistd.h>
int main()
{
pid_t pid;
pid = fork();
if(pid == 0)
{
execl("/bin/sh","sh","-c","ls -l *.c", NULL);
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行它时,它会显示扩展名为".c"的文件列表.但是,似乎子进程没有结束,光标一直闪烁.
srico@ubuntu:~/Desktop/c$ -rw-rw-r-- 1 srico srico 84 Jun 30 08:30 cmdacc.c
-rw-rw-r-- 1 srico srico 138 Jul 4 11:08 execfun.c
-rw-rw-r-- 1 srico srico 343 Jul 4 10:27 execvp1.c
-rw-rw-r-- 1 srico srico 167 Jun 23 08:20 filechar.c
-rw-rw-r-- 1 srico srico 195 Jun 23 11:20 fileline.c
-rw-rw-r-- 1 srico srico 203 Jun 27 07:17 filestat.c
-rw-rw-r-- 1 srico …Run Code Online (Sandbox Code Playgroud) 我有一个程序,我创建了两个线程.在一个线程中,我为整数a和b分配了一个值.在第二个线程中,我想访问a和b,以更改其值.
#include <stdio.h>
#include <pthread.h>
struct data {
int a;
int b;
};
struct data temp;
void *assign(void *temp)
{
struct data *new;
new = (struct data *) temp;
new->a = 2;
new->b = 2;
printf("You are now in thread1..\n The value of a and b is: %d, %d", new->a + 1, new->b + 1);
printf("\n");
pthread_exit(NULL);
}
void *add(void *temp1)
{
struct data *new1;
new1 = (struct data *) temp1;
printf("You are now in thread 2\nValue of a and …Run Code Online (Sandbox Code Playgroud)