小编Ama*_*ain的帖子

在TCL中,如何使变量使用另一个变量的值

我需要在另一个变量中使用变量的值.

这就是我试过的..

set cmd_ts "foo bar"
set confCmds {
    command1
    command2
    $cmd_ts
}
puts "confCmds = $confCmds"
Run Code Online (Sandbox Code Playgroud)

但不是得到

confCmds = 
    command1
    command2
    foo bar
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

confCmds =
    command1
    command2
    $cmd_ts
Run Code Online (Sandbox Code Playgroud)

PS我试过以下无济于事

  1. $ cmd_ts
  2. "$ cmd_ts"
  3. {$ cmd_ts}
  4. \ $ cmd_ts

tcl

3
推荐指数
1
解决办法
6537
查看次数

悬空指针,free()后价值变化的原因?

在下面的代码段中free(x),为什么会y变为0?

根据我的理解,堆中被指向x并且仍然被指向的内存y尚未分配给其他人,那么如何将其更改为0?

此外,我认为不会free(x)将其改为0.

任何意见?

#include <stdio.h>

int main(int argc, char *argv[])
{
    int *y = NULL;
    int *x = NULL;

    x = malloc(4);
    *x = 5;

    y = x;
    printf("[%d]\n", *y); //prints 5

    free(x);

    printf("[%d]\n", *y); //why doesn't print 5?, prints 0 instead

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers dangling-pointer

3
推荐指数
1
解决办法
1231
查看次数

如何滚动tmux的命令历史记录?

Cb:给你tmux命令提示符.
有没有办法滚动之前输入的命令?
向上箭头或Ctrl p/n似乎不起作用.

linux terminal tmux

3
推荐指数
1
解决办法
4516
查看次数

删除文件后是否可以使用fread?

我使用fopen将文件流打开到一个非常大的文件.在对该流执行任何读取操作之前,我使用unlink()删除了该文件.而且,我能够阅读整个文件.

我猜测有一个与流关联的缓冲区,它保存文件的数据.但显然缓冲区有限制.这就是我选择大小为551126688字节或526MB的a_big_file的原因.

我想知道它背后的确切原因是什么.这是我使用的测试代码.

#include <stdio.h>
#include <unistd.h>

int main(){

    FILE *fp;
    long long int file_size = 0;
    int bytes_read = 0;
    char buf[1];

    fp = fopen("a_big_file", "r");

    unlink("a_big_file");

    while(0 != (bytes_read = fread(buf, 1, 1, fp))){
        file_size += bytes_read;
    }

    printf("file_size is %llu\n", file_size);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:file_size是551126688

c

2
推荐指数
2
解决办法
740
查看次数

vim 编辑模式 - 如何打开文件并转到行号

在编辑模式下,如何指定 vim 转到特定行(比如 67)?以下命令将行号视为文件名。

:e /tmp/foo 67
Run Code Online (Sandbox Code Playgroud)

我知道在启动 vim 时如何执行此操作,但是当您已经在编辑其他文件的会话中时,这很不方便。

vim /tmp/foo +67
Run Code Online (Sandbox Code Playgroud)

vim

2
推荐指数
1
解决办法
89
查看次数

如何使用fwrite()多次写默认结构值

我想使用fwrite将一个默认结构N次写入文件.

typedef struct foo_s {

 uint32 A;
 uint32 B;
 char desc[100];

}foo_t;

void init_file(FILE *fp, int N)
{
   foo_t foo_struct = {0};
   foo_struct.A = -1;
   foo_struct.B =  1;

   fwrite(&foo_struct, sizeof(foo_struct), N, fp);    }
Run Code Online (Sandbox Code Playgroud)

上面的代码没有将foo_struct写入文件流fp N次.

相反,它将从&foo_struct开始的N*sizeof(foo_struct)字节写入fp.

任何人都可以告诉如何用一个fwrite实现相同的目标吗?

c

1
推荐指数
1
解决办法
3313
查看次数

如何将巨大(GB)文件上载到Web服务器

我正在创建一个我想上传大文件的应用程序.以下是该应用程序试图实现的一些描述:

  1. 从用户的物理机器创建vmdk文件(使用Vmware Converter工具,vmdk文件的大小可以是GB).
  2. 将此vmdk文件上载到远程服务器
  3. 现在,在远程服务器上拥有vmdk文件的目的是可访问性.
  4. 即远离其物理机的用户,以后可以通过webconsole登录,并从远程服务器上的vmdk实例化虚拟机

我认为这使得情况与普通文件上传(10-20MB文件上传)不同.

rsync/scp/sftp可能会有所帮助,但是..使用Web界面可以实现吗?

如果没有,那么我是否需要为最终用户创建单独的客户端,以便有效地转换和上传他的文件?

任何帮助表示赞赏..

webserver file-upload web

0
推荐指数
1
解决办法
6332
查看次数

标签 统计

c ×3

dangling-pointer ×1

file-upload ×1

linux ×1

pointers ×1

tcl ×1

terminal ×1

tmux ×1

vim ×1

web ×1

webserver ×1