size_t read_from_url(const char *url, char *buf, size_t sz)
{
char *cmd = malloc(strlen(url) + 13);
FILE *f;
size_t off = 0;
sprintf(cmd, "wget -O - '%s'", url);
f = popen(cmd, "r");
free(cmd);
while (sz) {
size_t rd = fread(buf + off, 1, sz, f);
if (rd == 0)
break;
off += rd;
sz -= rd;
}
pclose(f);
return off;
}
#include <stdio.h>
int main()
{
int n;
FILE *f = popen("grep -c \"a\" < 1.txt", "r");
fscanf(f, "%d", &n);
pclose(f);
...
}
int i;
int main()
{
i = 1;
return 0;
}
int i;
int f(void)
{
i = 1;
return 0;
}
$ gcc -std=c89 a.c b.c -o a
$ gcc -std=c99 a.c b.c -o a
$ gcc -std=c11 a.c b.c -o a
$ g++ a.c b.c -o a
/tmp/cc8AfU2T.o:(.bss+0x0): multiple definition of `i'
/tmp/ccBOJ29v.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
table = fizz(table);
Почему при передаче table в fizz struct Item[100] преобразуется в struct Item *table, а при присваивании - нет?
Студии и GCC не нравится двоеточие.
$ cat rdtsc.c
void f(unsigned long *low, unsigned long *high)
{
asm("rdtsc\n":"=a"(*low), "=d"(*high));
}
$ gcc -O2 -S -W -Wall rdtsc.c
$ cat rdtsc.s
.file "rdtsc.c"
.text
.p2align 4,,15
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
#APP
# 3 "rdtsc.c" 1
rdtsc
# 0 "" 2
#NO_APP
movq %rax, (%rdi)
movq %rdx, (%rsi)
ret
.cfi_endproc
.LFE0:
.size f, .-f
.ident "GCC: (GNU) 4.7.2 20121109 (Red Hat 4.7.2-8)"
.section .note.GNU-stack,"",@progbits
В чем я ошиблась?
char hmac[40];
auto scan_count = sscanf(cookie.c_str(), cookie_format, &uid, &hmac);
На входных данных:
uid=20364-726552704a0366dc3e0ca627e6ebacdeb8ecff70
получаем следующее:
uid=20224 hmac=726552704a0366dc3e0ca627e6ebacdeb8ecff70
Как можно убрать это автоматическое определение, что бы погода отображалась автоматически после получения ответа с Openweathermap.org??
array = realloc(array, (i + 1) * sizeof(char *)); array[i] = malloc((strlen(string) + 1));
array = realloc(array, (i + 2) * sizeof(char *));
array[i] = malloc((strlen(string) + 1));
array[i + 1] = NULL;
A sequence of two or more contiguous delimiter bytes in the parsed string is considered to be a single delimiter. Delimiter bytes at the start or end of the string are ignored. Put another way: the tokens
returned by strtok() are always nonempty strings.
Есть функция, инициализирующая массив, состоящий из структур.
struct product *pr
pr->code[i] = (*code);
free(p.title) не помогает