我想/home/chris/Downloads通过使用mkdir和将当前日期转换为目录的标题date -I
我试过mkdir"date -I",它给我一个名为 "date -I" 的文件夹,没有引号就给出了错误
mkdir: invalid option -- 'I'
Run Code Online (Sandbox Code Playgroud)
试着让它成为下一个变量
date= date -I
mkdir -p $date
Run Code Online (Sandbox Code Playgroud)
使用该-p选项,它看起来不错,但在检查时,没有创建该文件夹.删除-p让我错误
mkdir: cannot create directory `/home/chris/Downloads/': File exists
Run Code Online (Sandbox Code Playgroud)
甚至指向整个路径
date= date -I
mkdir "/home/chris/Downloads/$date"
Run Code Online (Sandbox Code Playgroud)
给我带来了和以前一样的错误
这不是变量是空的,我回应它并且值是我应该期望的,似乎是在创建目录之前没有替换该值.解决这个问题的方法是什么?我正在运行Ubuntu 11.04(Natty Narwhal),如果它能为您提供更多信息.
请考虑以下代码:
char* pointerTesting(void) {
char* test = "hello";
return test;
}
int main() {
char* string = pointerTesting();
printf("string: %s\n", string);
}
Run Code Online (Sandbox Code Playgroud)
编译和运行没有问题.但是,根据我的理解,这应该不起作用,因为分配给test指针的内存在堆栈上,并且在返回main时它被销毁.
所以问题是,如果在pointerTesting()函数中没有malloc,它如何工作?
此问题基于对此问题的回答(现已删除).它更多地是关于术语而不是实际的编程语义.
什么是通用的"实例化"?它是在编译时还是在运行时发生的?
我将参考Ada 2012标准的最新草案.
术语generic_instantiation的含义是明确的; 它是一个句法结构,类似于
package Inst is new Generic_Package(This => That);
Run Code Online (Sandbox Code Playgroud)
我的问题是关于动词"实例化".
我一直认为"实例化"是在编译时发生的事情.它是泛型模板的扩展,它发生在编译器在编译单元中遇到generic_instantiation时.
但是其他来源提到"实例化",至少可选地,在运行时发生.
为了实例化一个通用单元,程序员 为每个正式传递实际参数.然后,通用实例的行为与任何其他单元一样.可以在运行时实例化通用单元,例如在循环内.
这似乎意味着实例化可以在编译时或运行时发生.我认为这是指制定了的generic_instantiation,它确实发生在运行时-但是,所有的论述出现在运行时,是吗?
我发现从Ada RM得到明确的答案是非常困难的."实例化"或"实例化"没有词汇表条目(附件N).
我能找到的最接近的是12.2(通用机构)第2段中"动态语义学"下的声明:
通用主体的详细说明除了确定通用单元从那时起可以实例化而不会使Elaboration_Check失败之外没有其他效果.
这间接暗示实例化是一个运行时事件.
动词"实例化"是否正确引用了编译时事件(扩展通用模板)?到运行时事件(详细说明generic_instantiation)?如果是后者,我们称之为前者?Ada RM是否清晰,因为它需要在这一点上?
我不明白这个程序的输出:
int arr[]={1,7,4,2,5,8};
int x=(&(arr[arr[1]-arr[4]])-arr);
printf("%d" ,x);
Run Code Online (Sandbox Code Playgroud)
arr[arr[1]-arr[4]]等于4.这是什么意思&(4)?为什么打印2?
我试图在windows下编译一个linux编写的程序(我使用mingw)
void make_directory(const char* name) {
mkdir(name1, name2);
}
Run Code Online (Sandbox Code Playgroud)
有一个错误:
Too Many Arguments to function 'int mkdir(const char*)'
Run Code Online (Sandbox Code Playgroud)
有什么想法解决这个问题?
我正在学习Linux设备驱动程序并且卡在主要的次要数字上.到目前为止我所拥有的是:
可以通过文件系统中的名称访问设备.这些名称称为特殊文件或设备文件或文件系统的inode.
并且每个设备文件与捆绑在一个dev_t类型中的MAJOR和MINOR号相关联.
register_chrdev_region有些问题令我不安......
fops结构是否链接到f_ops设备文件的文件结构字段cdev_init(&c_dev, &fops);?open("/dev/mydev", O_RONLY);实际调用open()
驱动程序的功能.这里是否有数字来查找设备驱动程序的实际写入方法,如果是,如何?open() read() write()等执行操作时,这个数字的实际作用是什么??: Q × ? ? Q用英语怎么说?描述什么×和?意思也会有所帮助.
我@daily在crontab git gc上有一个在所有repos上运行的工作.我正在尝试为作业设置日志文件,但I/O重定向不会产生我正在寻找的结果; 我得到一个空白文件.
我已经做了所有常规的事情>,2>&1等等没有任何成功.
有人提到我git gc使用ncurses的输出程序将输出直接抛出到控制台,从而绕过stdout/stderr(如果我错了,请纠正我).
有人能指出我正确的方向吗?
我正在使用GCC版本4.7.1,但我也在GCC 4.8上尝试过这个.这是我正在尝试编译的代码:
#include <stdio.h>
void print(int amount) {
int i;
for (i = 0; i < 5; i++) {
printf("%d", i);
}
}
int main(int argc, char** argv) {
print(5);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它看起来应该工作,当我编译时......
gcc main.c
Run Code Online (Sandbox Code Playgroud)
编译需要一段时间,生成一个a.exe文件,a.exe文件就会消失.我的代码没有给我任何错误.
这是一个证据的GIF,因为有些人误解了这个:

我最近阅读了有关奇怪的C代码段的页面.大多数都是可以理解的.但我无法理解这一点:
switch(c & 3) while((c -= 4) >= 0){
foo(); case 3:
foo(); case 2:
foo(); case 1:
foo(); case 0:
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解释一下这段代码背后的逻辑是什么?它是如何工作的?
c ×5
bash ×2
linux ×2
ada ×1
dfa ×1
duffs-device ×1
file-io ×1
gcc ×1
generics ×1
git ×1
git-gc ×1
heap ×1
linux-kernel ×1
mingw ×1
pointers ×1
shell ×1
stack ×1
ubuntu-11.04 ×1
while-loop ×1
windows ×1