小编Blu*_*sul的帖子

C++:像这样的for循环如何工作(使用指针)?

我刚刚在参考书中看到了这个循环,但是我不确定比较中发生了什么,因为它只是一个单独的指针.

char input[300], *p, *q[300], **r = q;
cin.getline(input, 300);
for (p = input; *p; p++)
Run Code Online (Sandbox Code Playgroud)

它会如何工作?

c++ pointers for-loop

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

系统调用 open() 似乎在创建文件时随机设置文件权限

我使用 open 系统调用按以下方式创建和打开文件:

fileID = open("aFile", O_CREAT|O_RDWR|O_TRUNC);
Run Code Online (Sandbox Code Playgroud)

我希望创建的文件具有读写权限,有时确实如此,但只有当我运行时ls -l我才会看到 w,或 r,或 x,或 ws,或 rwx 等。如果我运行我的程序通过3次系统调用,我每次可能会得到3种不同的文件权限设置aFile。我不知道是什么导致了这个问题,因为它似乎是随机设置的。关于可能的原因有什么想法吗?

c linux filesystems system system-calls

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

Git:恢复提交并添加评论

我是命令行 (macOS) 上的 git 新手,一直在尝试使用注释进行提交、更改并再次提交注释、还原并添加注释,最后将其推送到主分支。前两个步骤和最后一个我可以毫无问题地完成,但是恢复并添加评论给了我这个错误:

error: option `mainline' expects a number greater than zero
Run Code Online (Sandbox Code Playgroud)

这些是我一直在做的步骤:

git init
Run Code Online (Sandbox Code Playgroud)

添加一些代码:

nano example.java
Run Code Online (Sandbox Code Playgroud)

使用远程注册新存储库:

git remote add origin [link to github repo]
Run Code Online (Sandbox Code Playgroud)

将文件添加到本地提交:

git add example.java
Run Code Online (Sandbox Code Playgroud)

初始提交:

git commit -a -m  "First commit"
Run Code Online (Sandbox Code Playgroud)

编辑代码:

nano example.java
Run Code Online (Sandbox Code Playgroud)

再次添加并提交:

git add example.java
git commit -a -m "Second commit"
Run Code Online (Sandbox Code Playgroud)

还原:

git revert HEAD -m "Reverting"
Run Code Online (Sandbox Code Playgroud)

这总是会返回我上面提到的错误。

也许我应该使用不同的命令来恢复和添加评论?我在这里先向您的帮助表示感谢!

git

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

标签 统计

c ×1

c++ ×1

filesystems ×1

for-loop ×1

git ×1

linux ×1

pointers ×1

system ×1

system-calls ×1