2011-10-30 106 views
0

我对c有点新,但我无法弄清楚如何发送这个字符串到函数。我尝试了几件事,但它告诉我它期待着什么需要关于发送字符串到函数的建议

program.c: In function ‘main’: 
    program.c:48:87: error: expected identifier or ‘(’ before ‘long’ 

     char string1[] = 
"This is process %d with ID %ld and parent id %ld\n", i, (long)getpid(), (long)getppid()); 

    write(wrfd1,string1, strlen(string1)); 

有没有更好的方法来做到这一点?谢谢

+1

以下是关于C语言中字符串操作的一些信息http://www.cprogramming.com/tutorial/c/lesson9.html如果在阅读本文后仍有问题,请随时添加到您的问题中。 – RedX

+0

我不知道你可以构建一个像这样的字符串。它是在printf和line中完成的,但是我之前没有看到过它。为什么不在字符串中嵌入变量。恩。 char string [] =“这是进程”+“我; – Thierry

回答

3

我想你想用sprintf

int length = 100; 
char string1[length]; 
if(sprintf(string1, "This is process %d with ID %ld and parent id %ld\n", i, (long)getpid(), (long)getppid())) { 
    write(wrfd1,string1, length); 
} 
+0

非常感谢 – user975582

1

第一个问题是:

(long)getppid()) 

支架数量不符。

另外一个是,你不能指定一个像这样的字符串:

int a = 100; 
char str[] = "A is %d", a; 

您应该使用“的sprintf”要做到这一点,如上所述。