我正在尝试使用Haskell处理大文件.我希望逐字节地浏览输入文件,并在字节之后生成输出字节.当然,我需要使用合理大小的块(几KB)来缓冲IO.我不能这样做,我需要你的帮助.
import System
import qualified Data.ByteString.Lazy as BL
import Data.Word
import Data.List
main :: IO ()
main =
do
args <- System.getArgs
let filename = head args
byteString <- BL.readFile filename
let wordsList = BL.unpack byteString
let foldFun acc word = doSomeStuff word : acc
let wordsListCopy = foldl' foldFun [] wordsList
let byteStringCopy = BL.pack (reverse wordsListCopy)
BL.writeFile (filename ++ ".cpy") byteStringCopy
where
doSomeStuff = id
Run Code Online (Sandbox Code Playgroud)
我命名此文件TestCopy.hs,然后执行以下操作:
$ ls -l *MB
-rwxrwxrwx 1 root root 10000000 2011-03-24 …Run Code Online (Sandbox Code Playgroud) 我有什么地方可以证实吗?我不确定这是GCC还是我的代码的问题.例如,以下代码无法编译:
#include <unordered_set>
#include <memory>
using namespace std;
int main() {
unordered_set<unique_ptr<int> > s;
unique_ptr<int> p(new int(0));
s.insert(move(p));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误信息太大,我不想放在这里.GCC版本是4.5.3,编译标志是-std = gnu ++ 0x.也在4.4.5上测试过.
我想获得其他进程的argv,例如ps。
我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10.4.11。
首先,我阅读了 ps 和 man kvm 的代码,然后编写了一些 C 代码。
#include <kvm.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysctl.h>
#include <paths.h>
int
main(void) {
char errbuf[1024];
kvm_t *kd = kvm_openfiles(_PATH_DEVNULL, NULL, _PATH_DEVNULL, O_RDONLY, errbuf);
int num_procs;
if (!kd) { fprintf(stderr, "kvm_openfiles failed : %s\n", errbuf); return 0; }
struct kinfo_proc *proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, &num_procs);
for (int i = 0; i < num_procs; i++) {
struct kinfo_proc *pproc = &proc_table[i]; …Run Code Online (Sandbox Code Playgroud) 我需要在输出PDF中嵌入我在TeX文档中使用的字体.我正在使用pdflatex进行TeX处理,使用TextMate作为编辑器.
我找不到任何关于如何在PDF文档中嵌入我需要的字体的参考.
为了能够正确调试发布版本,需要一个PDB文件.当编译器使用不同类型的优化(FPO,PGO,内部函数,内联等)时,PDB文件是否会变得不太可用?如果是这样,优化效果是否严重或仅仅导致相邻的代码行混淆?
(我正在使用VC2005,并且总是选择可调试性而非优化性能 - 但问题是一般的)
在.NET应用程序中生成调试信息(pdb)使我的应用程序在运行时更慢?或者他们只是在应用程序崩溃时进入游戏?
有什么方法可以在 Visual Studio 2008 下的 C# 中设置程序数据库文件 (*.pdb) 的自定义路径?对于 C++,这非常简单(项目设置 -> 链接器 -> 调试 -> 生成程序数据库文件),但出于某种原因,微软似乎已为 C# 删除(或隐藏)它。
我知道“标准”用法是将 pdb 放在可执行文件旁边的 bin 目录中,但是该目录变得非常混乱,所以我真的希望它们位于 /obj 中,这就是我总是习惯在 C++ 中做。
谢谢!
键入"ps aux"时,ps命令显示运行程序的命令参数.有些程序会将此更改为指示状态的方式.我已经尝试过更改argv []字段,但它似乎不起作用.是否有一种标准方法来设置命令行参数,以便在用户键入ps时显示它们?
也就是说,这不起作用:
int main(int argc,char **argv)
{
argv[0] = "Hi Mom!";
sleep(100);
}
09:40 imac3:~$ ./x &
[2] 96087
09:40 imac3:~$ ps uxp 96087
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
yv32 96087 0.0 0.0 2426560 324 s001 S 9:40AM 0:00.00 ./x
09:40 imac3:~$ cat x.c
Run Code Online (Sandbox Code Playgroud)