有人可以在c中给我一个简单的例子,使用pipe()系统调用并使用ssh连接到远程服务器并执行一个简单的ls命令并解析回复.提前致谢,..
继续使用代码获取错误,这是从旧版VS到2010版的转换:
#include <string>
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <math.h>
using std::string;
#define CROSSOVER_RATE 0.7
#define MUTATION_RATE 0.001
#define POP_SIZE 100 //must be an even number
#define CHROMO_LENGTH 300
#define GENE_LENGTH 4
#define MAX_ALLOWABLE_GENERATIONS 400
//returns a float between 0 & 1
#define RANDOM_NUM ((float)rand()/(RAND_MAX+1))
//----------------------------------------------------------------------------------------
//
// define a data structure which will define a chromosome
//
//----------------------------------------------------------------------------------------
struct chromo_typ
{
//the binary bit string is held in a std::string
string bits;
float fitness;
chromo_typ(): bits(""), fitness(0.0f){};
chromo_typ(string …Run Code Online (Sandbox Code Playgroud) 就像我们可以做的那样,在fd上轮询/ epoll/select,我们不能在msg队列id上.我找到了一些非标准的方法来将msgqueue-id设为fd,但是后来它是非标准的.所以我的问题是,为什么linux极客,没有在msg队列id上实现poll/select?这会导致严重的问题吗?
我需要实现这种机制.我怎样才能做到这一点 ?
我想编写一个函数,它接受一个数组作为输入参数.并且该函数应该打印数组的所有元素.
Run Code Online (Sandbox Code Playgroud)print_array(arr) { //print all the elemnts of arr. }
我不知道该怎么做.
我想首先我们需要找出传递的数组是1-D还是2-D还是3-D等等......数组
因为,打印以下元素:
Run Code Online (Sandbox Code Playgroud)1-D array, you need only 1 for loop. 2-D array, you need only 2 for loop. 3-D array, you need only 3 for loop.
但是,我不知道你是如何判断它的1-D,2-D还是ND阵列.请帮忙.
++a = b操作显示没有错误,但a++ = b在编译时显示错误g++.在这些操作之前初始化变量.
虽然这些操作没有实际用途,但我认为它们都应该在编译时发出相同的错误.你怎么看?如果有正当理由请向我解释.提前致谢!:)
PS gcc给出了这两个错误.
我有一个c ++类需要使用指向该方法的指针调用目标c方法.此方法返回void并接受类型为"status"的参数,其中status是一个简单的整数枚举.
enum status
{
status_valid = 0,
status_invalid,
status_unknown
};
Run Code Online (Sandbox Code Playgroud)
我有像这样设置的obj-c方法的指针.指向该方法的指针也被传递给c ++类和
typedef void (*FuncPtr) (status);
FuncPtr myObjCSelectorPointer = (void (*)(status))[self methodForSelector:@selector(statusChanged: )];
cppClassInstance->setFuncPointer(myObjCSelectorPointer)
Run Code Online (Sandbox Code Playgroud)
myObjCSelectorPointer由cppClass持有,如下所示:
void cppClass::setFuncPointer(FunctPtr *ptr)
{
this->funcPtr = ptr;
}
Run Code Online (Sandbox Code Playgroud)
现在在其他地方,当我尝试调用此指针指向的方法时,如下所示:
status s;
funcPtr(s);
Run Code Online (Sandbox Code Playgroud)
方法被正确调用,但传递给方法的值将丢失.obj-c方法接收完全随机的值.当我尝试使用相同的方式在cpp类中调用方法时,它传递并接收正确的值.
我究竟做错了什么?你能不能像这样调用客观的c方法吗?
#include <stdio.h>
void swap(void *v[], int i, int j)
{
void *tmp;
tmp = v[i];
v[i] = v[j];
v[j] = tmp;
}
int main(void)
{
char *s[] = {"one", "two"};
printf("%s, %s\n", s[0], s[1]);
swap(s, 0, 1);
printf("%s, %s\n", s[0], s[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
one, two
two, one
Run Code Online (Sandbox Code Playgroud)
警告: no compatible pointer casting, need void**, but char
我使用这个程序来模拟K&R中的交换函数,以演示函数指针的使用,我的问题是它的转换是否void pointer总是安全的,或者是否有任何替换它的方法.
我正在查看v4l头文件,我找到了具有以下结构的函数定义.
#define SOME_VAR
SOME_VAR int somefunc(int i,....);
Run Code Online (Sandbox Code Playgroud)
以这种方式使用#define指令的目的是什么?
提前致谢
我做错了什么?您能否发送一些有用的链接,让我的 makefile 工作更轻松、更好?
get_next_line.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
Makefile:27: recipe for target 'gnl' failed
make: *** [gnl] Error 1
Run Code Online (Sandbox Code Playgroud)
+++
SRC = gnl.c
OBJ = $(SRC:.c=.o)
INCLUDES = gnl.h
NAME = gnl
CFLAGS = -Wall -Werror -Wextra
CC = gcc
DIR = LIBFT
%.o: %.c $(SRC) $(INCLUDES)
$(CC) $(CFLAGS) -c $<
all: $(NAME)
$(NAME): $(OBJ)
make -C $(DIR)
$(CC) $(CFLAGS) -o $(NAME) $(OBJ) -L. $(DIR)/libft.a
clean:
make clean -C $(DIR) …Run Code Online (Sandbox Code Playgroud) 我想open_memstream在我的C代码中使用该函数.但是我似乎无法编译它.最小的工作示例如下:
#include <stdio.h>
int main(void) {
char *buf;
size_t sz;
FILE *stream = open_memstream(&buf, &sz);
putc('A', stream);
fclose(stream);
}
Run Code Online (Sandbox Code Playgroud)
我还使用以下命令编译它:
gcc -std=c99 -o test test.c
经过一些研究,我发现在包含之前我需要定义一个宏stdio.h.但是,以下示例代码无济于事.
#define __USE_POSIX
#define __USE_XOPEN
#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)
抛出以下编译器警告; 我假设第二个警告是因为第一个警告.
test.c:7:17: warning: implicit declaration of function ‘open_memstream’ [-Wimplicit-function-declaration]
FILE *stream = open_memstream(&buf, &sz);
^
test.c:7:17: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
Run Code Online (Sandbox Code Playgroud)